//////////////////////////////////////////////////////////////////////////// // ---------------------------------------------------------------------- // // Copyright (C) 2006 - 2008 FRESCOR consortium partners: // // // // Universidad de Cantabria, SPAIN // // University of York, UK // // Scuola Superiore Sant'Anna, ITALY // // Kaiserslautern University, GERMANY // // Univ. Politécnica Valencia, SPAIN // // Czech Technical University in Prague, CZECH REPUBLIC // // ENEA SWEDEN // // Thales Communication S.A. FRANCE // // Visual Tools S.A. SPAIN // // Rapita Systems Ltd UK // // Evidence ITALY // // // // See http://www.frescor.org for a link to partners' websites // // // // FRESCOR project (FP6/2005/IST/5-034026) is funded // // in part by the European Union Sixth Framework Programme // // The European Union is not liable of any use that may be // // made of this code. // // // // // // This file is part of FORB (Frescor Object Request Broker) // // // // FORB is free software; you can redistribute it and/or modify it // // under terms of the GNU General Public License as published by the // // Free Software Foundation; either version 2, or (at your option) any // // later version. FORB is distributed in the hope that it will be // // useful, but WITHOUT ANY WARRANTY; without even the implied warranty // // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // // General Public License for more details. You should have received a // // copy of the GNU General Public License along with FORB; see file // // COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, // // Cambridge, MA 02139, USA. // // // // As a special exception, including FORB header files in a file, // // instantiating FORB generics or templates, or linking other files // // with FORB objects to produce an executable application, does not // // by itself cause the resulting executable application to be covered // // by the GNU General Public License. This exception does not // // however invalidate any other reasons why the executable file might be // // covered by the GNU Public License. // //////////////////////////////////////////////////////////////////////////// #include "types.idl" /** * @file iop-idl.idl * @author Michal Sojka * @date Sun Oct 12 16:52:08 2008 * * @brief Definitions for FORB's IOP (Inter-ORB protocol). * * */ /// FORB namespace module forb { /// Inter-ORB protocol namespace module iop { typedef octet message_type; const message_type REQUEST = 0; const message_type REPLY = 1; const message_type HELLO = 2; /// Version of FORB IOP protocol struct version { octet major, minor; }; typedef octet message_flags; const message_flags LITTLE_ENDIAN = 1; /// Common header of all FORB IOP messages struct message_header { version proto_version; message_type message_type; message_flags flags; unsigned long message_size; }; const long MESSAGE_HEADER_SIZE = 8; /// Header of REQUEST message struct request_header { unsigned long request_id; string iface; object_key objkey; short method_index; server_id source; ///< Server ID of request originator }; typedef unsigned short reply_flags; const reply_flags FLAG_EXCEPTION = 1; /// Header of REPLY message struct reply_header { unsigned long request_id; reply_flags flags; }; const long REPLY_HEADER_SIZE = 8; }; };