1 /**************************************************************************/
2 /* ---------------------------------------------------------------------- */
3 /* Copyright (C) 2006 - 2008 FRESCOR consortium partners: */
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 */
12 /* Thales Communication S.A. FRANCE */
13 /* Visual Tools S.A. SPAIN */
14 /* Rapita Systems Ltd UK */
17 /* See http://www.frescor.org for a link to partners' websites */
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. */
25 /* This file is part of FORB (Frescor Object Request Broker) */
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. */
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 /**************************************************************************/
49 * @author Michal Sojka <sojkam1@fel.cvut.cz>
50 * @date Sun Oct 12 16:19:24 2008
52 * @brief Incomplete declarations of forb_object type and all associated stuff.
57 #ifndef FORB_FORB_OBJECT_H
58 #define FORB_FORB_OBJECT_H
60 #include <forb/basic_types.h>
62 #include <forb/types.h>
64 #if defined(__cplusplus)
70 /** Opaque object reference type. */
71 typedef struct _forb_object *forb_object;
72 typedef forb_object CORBA_Object;
74 #if !defined(_forb_orb_defined)
75 #define _forb_orb_defined 1
76 typedef forb_object forb_orb;
80 * FORB exception types. Inspired by CORBA's standard system
85 FORB_EX_UNKNOWN, /* 1 */
86 FORB_EX_BAD_PARAM, /* 2 */
87 FORB_EX_NO_MEMORY, /* 3 */
88 FORB_EX_IMP_LIMIT, /* 4 */
89 FORB_EX_COMM_FAILURE, /* 5 */
90 FORB_EX_INV_OBJREF, /* 6 */
91 FORB_EX_NO_PERMISSION, /* 7 */
92 FORB_EX_INTERNAL, /* 8 */
93 FORB_EX_MARSHAL, /* 9 */
94 FORB_EX_INITIALIZE, /* 10 */
95 FORB_EX_NO_IMPLEMENT, /* 11 */
96 FORB_EX_BAD_OPERATION, /* 12 */
97 FORB_EX_NO_RESOURCES, /* 13 */
98 FORB_EX_NO_RESPONSE, /* 14 */
99 FORB_EX_TRANSIENT, /* 15 */
100 FORB_EX_FREE_MEM, /* 16 */
101 FORB_EX_INV_IDENT, /* 17 */
102 FORB_EX_INV_FLAG, /* 18 */
103 FORB_EX_DATA_CONVERSION, /* 19 */
104 FORB_EX_OBJECT_NOT_EXIST, /* 20 */
105 FORB_EX_TIMEOUT, /* 21 */
106 FORB_EX_APPLICATION, /* 22 */ /**< Application defined exception - TODO: Add minor number to forb_env */
110 * Environment for FORB invocations.
114 enum forb_exception major; /**< Exception number */
117 typedef struct forb_env CORBA_Environment;
119 static inline CORBA_boolean forb_exception_occurred(CORBA_Environment *env)
121 return (env->major != FORB_EX_NONE);
124 #define forb_malloc(size) malloc(size)
125 #define forb_free(ptr) free(ptr)
127 #define CORBA_malloc(size) forb_malloc(size)
128 #define CORBA_free(ptr) forb_free(ptr)