1 2 #ifndef SDAIOBJECT_H 3 #define SDAIOBJECT_H 1 4 5 #include <sc_export.h> 6 7 /* 8 9 */ 10 /* 11 The EXPRESS ENTITY entity_instance from the SDAI_data_type_schema from 12 clause 10 in ISO 10303-22, shall be mapped to the C++ class Entity_instance. 13 The class Entity_instance shall be a subtype of the C++ class Object: 14 */ 15 16 class SC_DAI_EXPORT SDAI_sdaiObject { 17 public: 18 SDAI_sdaiObject(); 19 virtual ~SDAI_sdaiObject(); 20 // static Object_ptr _duplicate(Object_ptr); 21 // static Object_ptr _nil(); 22 23 }; 24 25 typedef SDAI_sdaiObject * SDAI_sdaiObject_ptr; 26 typedef SDAI_sdaiObject_ptr SDAI_sdaiObject_var; 27 28 /* 29 The class Object shall be accessed through the handle types Object_ptr and 30 Object_var. For handles to the C++ class representing a EXPRESS ENTITY data 31 type A, the following implicit widening operations shall be supported: 32 A_ptr to Object_ptr and A_var to Object_ptr. An implementation need not 33 support implicit widening of A_var to Object_var. 34 35 This binding shall support the following functions: 36 */ 37 38 //void release(Object_ptr obj); 39 40 /* 41 The release function indicates that the caller will no longer access the 42 reference obj. 43 */ 44 45 //Boolean is_nil(Object_ptr obj); 46 47 /* 48 The is_nil function shall return true if obj is a nil handle; otherwise it 49 returns false. 50 51 This binding does not specify that all base classes in the application 52 schema be virtual base classes; however, it does require that no multiply 53 inherited derived class contain multiple instantiations of any of its base 54 classes. This requirement applies to all classes, even classes used to 55 instantiate complex instances. 56 */ 57 58 #endif 59