Index: [thread] [date] [subject] [author]
  From: Kien Pham <xengren@yahoo.com>
  To  : ggi-develop@eskimo.com
  Date: Sat, 20 Feb 1999 05:07:56 -0800 (PST)

Re: libGGI3d -- ready to code?

Daemonprince <dp@khazad-dum.freeserve.co.uk> wrote:
>
> On Sat, Feb 20, 1999 at 01:00:35PM +1100, Andrew Apted wrote:
> > 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.
> > 
> The only problem I have with COM is this messiness that you mention.
> The GUIDs though they may be unique are not human readable and this
> means extra overhead of making GUID to person converters. Ever tried
> finding an incorrect registry entry in windows :-)
> 
> Otherwise from what COM work I have looked at in my Job defining a COM
> interface is the same as one in IDL. The language is even called mIDL.
> 
> But the uniqueness of the identifier is a good winner, Java almost has
> this with its internet address tagged on the front of classes thing.
But
> big companies have already broken this. No-one as far as I know have
> messed up COM though.
> 
> Ill check out CrystalSpace ASAP then.
> 
> Graeme
I think that's a pretty good idea. Then you could enumerate
types too and then describe prototypes with a string of ints. Mangled
names are slower to parse. So you could have int
interface[]={provider_num, return_num, func_num, arg1, arg2, arg3,
arg4, 0 }; provider_num is kinda a theft of idea from Java. It's so
multiple modules can provide the same functionality. You get to choose
the one you want. P.S. I haven't read all the docs, yet. Just jumping
the in whole hog. :P
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com

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