Re: A newbie question

jon klein <[email protected]>
Newsgroups gmane.comp.breve
Message-ID <[email protected]>
On Jun 1, 2004, at 12:22 AM, German Viscuso wrote:

> If somehow breve could offer a dll with exported c functions that
> communicate with the breve engine almost any Smalltalk user (and those 
> with
> external api access via dlls in other languages) could use and map the
> objects in the simulation thrugh it and build whatever intermediate 
> layer
> neccessary.
>
> I'm willing to help in achieving this scheme if you think it's 
> possible (I
> know little about breve right know) and if you give me some pointers 
> =) I
> have an intermediate level of c and c++ knowledge (I'm mostly an 
> Smalltalk
> programmer) but have done many projects that interfaced c dynamic link
> libraries with Smalltalk (including having to build the dlls myself, 
> using
> VC++).

I'm in the process of cleanly separating out the the engine code from 
the
steve language code.  It's involving a rather major (but well needed)
restructuring of some of the code.  When it's finished, there will be a
library and an API that you should be able to use from any language that
can call C functions.

Even though I haven't put together the API yet, I can give an overview 
of
what will be needed:

- translation between your language's types and the breve stEval 
structure

   In steve/stEval.h (and as described in the plugin documentation), 
you'll
   find the stEval structure.  This is the structure used to pass around
   arguments and return values by the breve engine.  You'll need to 
provide
   functions to translate to and from the stEval structure from your 
native
   types.

- use the API to call breve's "C-style internal functions", using 
stEvals
   to pass around the data.

   If you look at the source, in the steve directory, you'll find a bunch
   of files that begin with the string "steveFuncs".  These are the files
   which define the internal functions.

   The call to do this might look something like this:

     breveCallInternalFunction(currentInstance, functionName, arguments, 
&return);

- port the steve class files to the native language, using these 
internal
   functions.

   This should be very straightforward once the rest is in place.


For the moment, it might be best to start with the first item, 
translation
between native types and the stEval structure.  Hopefully I'll have the 
code
put back together in the next week or so, so that I'll be able to be 
more
specific about how the pieces will come together.

- jon klein

_______________________________________________
breve mailing list
[email protected]
http://www.spiderland.org/mailman/listinfo/breve
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.