]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - forb-idl.idl
Added initial work on inter-ORB communication
[frescor/forb.git] / forb-idl.idl
index 2215b135716849dd8ba1ba3a5507fdd24238eea5..9eadede4f081b59a19f983888da14f399bfaf3d8 100644 (file)
@@ -1,13 +1,13 @@
 module forb {
+       typedef long long object_key;
 
        // Inter-ORB protocol
        module iop {
-               typedef long long object_key;
                
-               enum message_type {
-                       REQUEST,
-                       REPLY
-               };
+               typedef octet message_type;
+
+               const message_type REQUEST = 0;
+               const message_type REPLY   = 1;
 
                struct version {
                        octet major, minor;
@@ -18,20 +18,27 @@ module forb {
                const message_flags LITTLE_ENDIAN = 1;
 
                struct message_header {
-                       version proto_version;
-                        octet message_type;
+                       version       proto_version;
+                        message_type  message_type;
                        message_flags flags;
                        unsigned long message_size;
                };
+               const long MESSAGE_HEADER_SIZE = 8;
+               
                struct request_header {
+                       unsigned long request_id;
+                       string iface;
                        object_key objkey;
                        short method_index;
                };
+               const long REQUEST_HEADER_SIZE = 8;
+
                typedef short reply_flags;
                const reply_flags FLAG_EX = 1;
                struct reply_header {
                        unsigned short flags;
                };
+               const long REPLY_HEADER_SIZE = 8;
        };
        
        __declspec(pidl) interface orb {