]> rtime.felk.cvut.cz Git - frescor/forb.git/blob - src/iop-idl.idl
forb_request_send() moved to iop.c
[frescor/forb.git] / src / iop-idl.idl
1 ////////////////////////////////////////////////////////////////////////////
2 // ---------------------------------------------------------------------- //
3 // Copyright (C) 2006 - 2008 FRESCOR consortium partners:                 //
4 //                                                                        //
5 //   Universidad de Cantabria,              SPAIN                         //
6 //   University of York,                    UK                            //
7 //   Scuola Superiore Sant'Anna,            ITALY                         //
8 //   Kaiserslautern University,             GERMANY                       //
9 //   Univ. Politécnica  Valencia,           SPAIN                        //
10 //   Czech Technical University in Prague,  CZECH REPUBLIC                //
11 //   ENEA                                   SWEDEN                        //
12 //   Thales Communication S.A.              FRANCE                        //
13 //   Visual Tools S.A.                      SPAIN                         //
14 //   Rapita Systems Ltd                     UK                            //
15 //   Evidence                               ITALY                         //
16 //                                                                        //
17 //   See http://www.frescor.org for a link to partners' websites          //
18 //                                                                        //
19 //          FRESCOR project (FP6/2005/IST/5-034026) is funded             //
20 //       in part by the European Union Sixth Framework Programme          //
21 //       The European Union is not liable of any use that may be          //
22 //       made of this code.                                               //
23 //                                                                        //
24 //                                                                        //
25 //  This file is part of FORB (Frescor Object Request Broker)             //
26 //                                                                        //
27 // FORB is free software; you can redistribute it and/or modify it        //
28 // under terms of the GNU General Public License as published by the      //
29 // Free Software Foundation; either version 2, or (at your option) any    //
30 // later version.  FORB is distributed in the hope that it will be        //
31 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty    //
32 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU    //
33 // General Public License for more details. You should have received a    //
34 // copy of the GNU General Public License along with FORB; see file       //
35 // COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,  //
36 // Cambridge, MA 02139, USA.                                              //
37 //                                                                        //
38 // As a special exception, including FORB header files in a file,         //
39 // instantiating FORB generics or templates, or linking other files       //
40 // with FORB objects to produce an executable application, does not       //
41 // by itself cause the resulting executable application to be covered     //
42 // by the GNU General Public License. This exception does not             //
43 // however invalidate any other reasons why the executable file might be  //
44 // covered by the GNU Public License.                                     //
45 ////////////////////////////////////////////////////////////////////////////
46
47 #include "types.idl"
48
49 /**
50  * @file   iop-idl.idl
51  * @author Michal Sojka <sojkam1@fel.cvut.cz>
52  * @date   Sun Oct 12 16:52:08 2008
53  * 
54  * @brief  Definitions for FORB's IOP (Inter-ORB protocol).
55  * 
56  * 
57  */
58
59
60 /// FORB namespace
61 module forb {
62         /// Inter-ORB protocol namespace
63         module iop {
64                 
65                 typedef octet message_type;
66
67                 const message_type REQUEST = 0;
68                 const message_type REPLY   = 1;
69                 const message_type HELLO   = 2;
70
71                 /// Version of FORB IOP protocol
72                 struct version {
73                         octet major, minor;
74                 };
75
76                 typedef octet message_flags;
77
78                 const message_flags LITTLE_ENDIAN = 1;
79
80                 /// Common header of all FORB IOP messages
81                 struct message_header {
82                         version       proto_version;
83                         message_type  message_type;
84                         message_flags flags;
85                         unsigned long message_size;
86                 };
87                 const long MESSAGE_HEADER_SIZE = 8;
88
89                 /// Header of REQUEST message
90                 struct request_header {
91                         unsigned long request_id;
92                         string iface;
93                         object_key objkey;
94                         short method_index;
95                         server_id source; ///< Server ID of request originator
96                 };
97
98                 typedef unsigned short reply_flags;
99                 const reply_flags FLAG_EXCEPTION = 1;
100                 /// Header of REPLY message
101                 struct reply_header {
102                         unsigned long request_id;
103                         reply_flags flags;
104                 };
105                 const long REPLY_HEADER_SIZE = 8;
106         };
107 };