Index: [thread] [date] [subject] [author]
  From: Andrew Apted <ajapted@netspace.net.au>
  To  : ggi-develop@eskimo.com
  Date: Sat, 20 Feb 1999 13:00:35 +1100

Re: libGGI3d -- ready to code?

Filip Spacek writes:

>  On Fri, 19 Feb 1999 G. Gregory wrote:
>  
>  > Hmmm, I still like the idea of an IDL interface to the modules. This way
>  > bindings can be made to any language we can find a compiler for. Way back
>  > in time I heard X11R6.4 was supposed to support IDL for its interface
>  > definitions. Did this ever come off. Once upon a time I had IDL to C and
>  > C++ without the ORB stuff compilers. Cant remeber where they came from
>  > though. They might have been OMG reference versions or somethimg.
>  > 
>  > But then again if you really do want a string, you could always use
>  > something similar to C++ name mangeling. void_int_long_float_drawtriangle
>  > for void drawtriangle(int,long,float).
>  
>  Well, string seemed to be the best from the point of view of speed and
>  flexibility. But the way I see it just a simple C++ish name mangling is
>  not sufficient. What would be needed is a _description_ of the data
>  structure. For example how would one go about describing interface for a
>  BSP-tree rasterizer? 

Has anyone considered something "COM" like ?  The basics of COM seem
pretty suitable, being :

  -  Interfaces are named by 128 bit "GUIDs" (Globally Unique
     Identifiers).  They are practically guaranteed to be unique, so no
     real chance that the interfaces of two separately developed modules
     will clash.

  -  Each "component" can have multible interfaces: whenever you have
     one interface pointer, you can use the standard "QueryInterface"
     call to see if that component supports a particular interface.
  
  -  Interfaces are immutable, once they are "published" they cannot be
     changed, so there is no problems of things breaking because someone
     altered the ABI.  To add new features, you need a new interface.

CrystalSpace is using COM, which is why I mention it.  The COM-ified
code looks rather messy (IMHO), but works OK.

Cheers,
_____________________________________________  ____
                                               \  /
  Andrew Apted   <andrew@ggi-project.org>       \/
 

Index: [thread] [date] [subject] [author]