1 #ifndef __TYPECODE_HXX__
2 #define __TYPECODE_HXX__
4 //#include <Python.h> // here, to avoid warning: "_POSIX_C_SOURCE" redefined
6 #include "Exception.hxx"
27 // typedef enum DynType StreamType;
29 class TypeCode_objref;
34 TypeCode(DynType kind);
39 virtual const char * name() const throw(Exception);
40 virtual const char * id() const throw(Exception);
41 virtual TypeCode * content_type() const throw(Exception);
42 virtual int is_a(const char* repositoryId);
43 virtual int is_a(TypeCode* tc);
45 static TypeCode * interface_tc(const char* id, const char* name);
46 static TypeCode * interface_tc(const char* id, const char* name, std::list<TypeCode_objref *> ltc);
47 static TypeCode * sequence_tc (const char* id, const char* name, TypeCode *content);
50 // --- These operators are placed here to avoid them being used externally
51 TypeCode(const TypeCode& tc);
52 TypeCode& operator=(const TypeCode& tc);
59 class TypeCode_objref: public TypeCode
62 TypeCode_objref(const char* repositoryId, const char* name);
64 TypeCode_objref(const char* repositoryId, const char* name, std::list<TypeCode_objref *> ltc);
65 virtual ~TypeCode_objref();
67 const char * id() const throw(Exception);
68 const char * name() const throw(Exception);
69 int is_a(const char* repositoryId) throw(Exception);
70 virtual int is_a(TypeCode* tc) throw(Exception);
77 std::list<TypeCode_objref *> _listOfBases;
81 class TypeCode_seq: public TypeCode
84 TypeCode_seq(const char* repositoryId, const char* name, TypeCode *content);
85 virtual ~TypeCode_seq();
87 const char * id() const throw(Exception);
88 const char * name() const throw(Exception);
90 virtual TypeCode * content_type() const throw(Exception);
91 virtual int is_a(TypeCode* tc);