1 #ifndef CORBA_TYPECODE_H
2 #define CORBA_TYPECODE_H 1
3 
4 #include <orbit/orb-core/corba-typecode-type.h>
5 #include <orbit/orb-core/corba-any-type.h>
6 #include <orbit/orb-core/orbit-object.h>
7 
8 G_BEGIN_DECLS
9 
10 #define CORBA_tk_recursive 0xffffffff
11 #define CORBA_tk_last (CORBA_tk_abstract_interface + 1)
12 
13 struct CORBA_TypeCode_struct {
14 	struct ORBit_RootObject_struct parent;
15 	CORBA_unsigned_long  kind;          /* The type */
16 	CORBA_unsigned_long  flags;	    /* native - impl. flags */
17 	CORBA_short          c_length;      /* native - C size */
18 	CORBA_short          c_align;       /* native - C align */
19 	CORBA_unsigned_long  length;        /* length of sub types / parts */
20 	CORBA_unsigned_long  sub_parts;     /* length of sub parts */
21 	CORBA_TypeCode      *subtypes;	    /* for struct, exception, union, alias, array, sequence */
22 	CORBA_TypeCode       discriminator; /* for union */
23 	char                *name;
24 	char                *repo_id;
25 	char               **subnames;      /* for struct, exception, union, enum */
26 	CORBA_long          *sublabels;     /* for union */
27 	CORBA_long           default_index; /* for union */
28 	CORBA_unsigned_long  recurse_depth; /* for recursive sequence */
29 	CORBA_unsigned_short digits;        /* for fixed */
30 	CORBA_short scale;	            /* for fixed */
31 };
32 
33 extern ORBIT2_MAYBE_CONST ORBit_RootObject_Interface ORBit_TypeCode_epv;
34 
35 #define TC_null ((CORBA_TypeCode)&TC_null_struct)
36 #define TC_void ((CORBA_TypeCode)&TC_void_struct)
37 #define TC_CORBA_short ((CORBA_TypeCode)&TC_CORBA_short_struct)
38 #define TC_CORBA_long ((CORBA_TypeCode)&TC_CORBA_long_struct)
39 #define TC_CORBA_long_long ((CORBA_TypeCode)&TC_CORBA_long_long_struct)
40 #define TC_CORBA_unsigned_short ((CORBA_TypeCode)&TC_CORBA_unsigned_short_struct)
41 #define TC_CORBA_unsigned_long ((CORBA_TypeCode)&TC_CORBA_unsigned_long_struct)
42 #define TC_CORBA_unsigned_long_long ((CORBA_TypeCode)&TC_CORBA_unsigned_long_long_struct)
43 #define TC_CORBA_float ((CORBA_TypeCode)&TC_CORBA_float_struct)
44 #define TC_CORBA_double ((CORBA_TypeCode)&TC_CORBA_double_struct)
45 #define TC_CORBA_long_double ((CORBA_TypeCode)&TC_CORBA_long_double_struct)
46 #define TC_CORBA_boolean ((CORBA_TypeCode)&TC_CORBA_boolean_struct)
47 #define TC_CORBA_char ((CORBA_TypeCode)&TC_CORBA_char_struct)
48 #define TC_CORBA_wchar ((CORBA_TypeCode)&TC_CORBA_wchar_struct)
49 #define TC_CORBA_octet ((CORBA_TypeCode)&TC_CORBA_octet_struct)
50 #define TC_CORBA_any ((CORBA_TypeCode)&TC_CORBA_any_struct)
51 #define TC_CORBA_TypeCode ((CORBA_TypeCode)&TC_CORBA_TypeCode_struct)
52 #define TC_CORBA_Principal ((CORBA_TypeCode)&TC_CORBA_Principal_struct)
53 #define TC_CORBA_Object ((CORBA_TypeCode)&TC_CORBA_Object_struct)
54 #define TC_CORBA_string ((CORBA_TypeCode)&TC_CORBA_string_struct)
55 #define TC_CORBA_wstring ((CORBA_TypeCode)&TC_CORBA_wstring_struct)
56 
57 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_null_struct;
58 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_void_struct;
59 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_char_struct;
60 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_wchar_struct;
61 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_string_struct;
62 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_wstring_struct;
63 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_long_struct;
64 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_unsigned_long_struct;
65 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_short_struct;
66 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_unsigned_short_struct;
67 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_octet_struct;
68 #define TC_Object_struct TC_CORBA_Object_struct
69 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_Object_struct;
70 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_any_struct;
71 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_TypeCode_struct;
72 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_boolean_struct;
73 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_float_struct;
74 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_double_struct;
75 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_long_double_struct;
76 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_long_long_struct;
77 extern ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_unsigned_long_long_struct;
78 
79 #ifdef ORBIT2_INTERNAL_API
80 
81 #include <orbit/GIOP/giop-basics.h>
82 
83 void        ORBit_encode_CORBA_TypeCode (CORBA_TypeCode  tc,
84 					 GIOPSendBuffer *buf);
85 gboolean    ORBit_decode_CORBA_TypeCode (CORBA_TypeCode *tc,
86 					 GIOPRecvBuffer *buf);
87 
88 const char *ORBit_tk_to_name            (CORBA_unsigned_long tk);
89 
90 #endif /*  ORBIT2_INTERNAL_API */
91 
92 G_END_DECLS
93 
94 #endif
95