#ifndef SDAIOBJECT_H #define SDAIOBJECT_H 1 /* #include */ /* The EXPRESS ENTITY entity_instance from the SDAI_data_type_schema from clause 10 in ISO 10303-22, shall be mapped to the C++ class Entity_instance. The class Entity_instance shall be a subtype of the C++ class Object: */ class SCLP23_NAME(sdaiObject) { public: SCLP23_NAME(sdaiObject)(); virtual ~SCLP23_NAME(sdaiObject)(); // static Object_ptr _duplicate(Object_ptr); // static Object_ptr _nil(); #ifdef PART26 // virtual SCLP26(Application_instance_ptr) create_TIE(); virtual IDL_Application_instance_ptr create_TIE(); #endif #ifdef __OSTORE__ static os_typespec* get_os_typespec(); virtual void Access_hook_in(void *object, enum os_access_reason reason, void *user_data, void *start_range, void *end_range); #endif }; typedef SCLP23_NAME(sdaiObject)* SCLP23_NAME(sdaiObject_ptr); typedef SCLP23_NAME(sdaiObject_ptr) SCLP23_NAME(sdaiObject_var); /* The class Object shall be accessed through the handle types Object_ptr and Object_var. For handles to the C++ class representing a EXPRESS ENTITY data type A, the following implicit widening operations shall be supported: A_ptr to Object_ptr and A_var to Object_ptr. An implementation need not support implicit widening of A_var to Object_var. This binding shall support the following functions: */ //void release(Object_ptr obj); /* The release function indicates that the caller will no longer access the reference obj. */ //Boolean is_nil(Object_ptr obj); /* The is_nil function shall return true if obj is a nil handle; otherwise it returns false. This binding does not specify that all base classes in the application schema be virtual base classes; however, it does require that no multiply inherited derived class contain multiple instantiations of any of its base classes. This requirement applies to all classes, even classes used to instantiate complex instances. */ #endif