]> git.buserror.net Git - polintos/scott/priv.git/blob - doc/idl/corba-differences
Initial checkin from Perforce.
[polintos/scott/priv.git] / doc / idl / corba-differences
1 These are some of the differences between CORBA and this object
2 model (this list is not meant to be exhaustive):
3
4 No preprocessor in the IDL.
5
6 No double-extended floating point type (most architectures don't
7 support it, and its main purpose is extra precision for temporary
8 calculations, where RPC is somewhat irrelevant).
9
10 No fixed point type, at least not as a basic type.  Perhaps as a
11 value type...
12
13 All characters are Unicode; if you need to pass characters or strings
14 in ISO Latin-1 and/or other character sets, use the octet type.
15
16 A string type exists, which holds characters in a UTF-8 encoding.
17
18 No "any" type (use objects that encapsulate basic types instead (or
19 maybe built-in value types?)).
20
21 No unions.
22
23 Sequences are not a special case; they are merely arrays whose
24 minimum and maximum lengths are not equal.
25
26 No multi-dimensional arrays.
27
28 No value types for now (though they look interesting).  At the
29 moment, I'm leaning towards implementing this as a binding between a
30 class and a struct. 
31
32 Instead of "oneway", there's "async".  The basic idea is the same,
33 except that async method invocations have the same execution
34 guarantees as normal methods (that is, it may never complete because
35 the remote machine is down, or the remote process is hung; however,
36 it will never be dropped due to things like packet loss).
37
38 There is no return type (only out parameters).  This may change.
39
40 No attributes (yet).
41
42 Structs can inherit from other structs, and this hierarchy can be
43 used for exceptions.  All structs inherit from the root Struct type.
44