663 lines
21 KiB
C++
663 lines
21 KiB
C++
#ifndef SDAIDAOBJECT_H
|
|
#define SDAIDAOBJECT_H 1
|
|
|
|
/*
|
|
#include <sclprefixes.h>
|
|
|
|
#ifdef PART26
|
|
#include <CORBA.h>
|
|
#include <corbaIncludes.h>
|
|
#else
|
|
typedef char* DAObjectID;
|
|
#endif
|
|
|
|
#include <Object.h>
|
|
*/
|
|
|
|
#ifndef PART26
|
|
typedef char* SCLP23_NAME(DAObjectID);
|
|
#endif
|
|
|
|
// interface PID (ISO/DIS 10303-23:1996(E) 5.3.10.1)
|
|
// Also, CORBA POS specification, Section 5.4
|
|
//
|
|
// The PID class maintains the persistent object identifier for every
|
|
// persistent object, objects of class DAObject, and objects of any class
|
|
// derived directly or indirectly from DAObject.
|
|
//
|
|
// POS: The PID identifies one or more locations within a Datastore that
|
|
// represent the persistent data of an object and generates a string
|
|
// identifier for that data. An object must have a PID in order to store
|
|
// its data persistently.
|
|
//
|
|
/*
|
|
The EXPRESS ENTITY application_instance from the SDAI_data_type_schema from
|
|
clause 10 in ISO 10303-22, shall be mapped to the C++ class
|
|
Application_instance. The class Application_instance shall be a subtype of
|
|
the C++ class DAObject and of the C++ class Entity_instance.
|
|
The class DAObject is supported by the classes PID, PID_SDAI and the type
|
|
SCLP23(DAObjectID) as follows:
|
|
*/
|
|
|
|
class SCLP23_NAME(PID) : public SCLP23_NAME(sdaiObject)
|
|
{
|
|
public:
|
|
|
|
// These are in the IDL generated code for Part 26. I will have to think about
|
|
// why they should be here (for Part 23). DAS
|
|
// static PID_ptr _duplicate(PID_ptr);
|
|
// static PID_ptr _narrow(SCLP23_NAME(sdaiObject_ptr));
|
|
// static PID_ptr _nil();
|
|
|
|
SCLP23_NAME(String) _datastore_type ;
|
|
SCLP23_NAME(String) _pidstring ;
|
|
|
|
// constructor/destructor
|
|
SCLP23_NAME(PID)();
|
|
virtual ~SCLP23_NAME(PID)();
|
|
|
|
#ifndef PART26
|
|
/*
|
|
The Datestore_type attribute shall identify the type of the underlying
|
|
datastore.
|
|
*/
|
|
char* Datastore_type() const { return (char*) _datastore_type.chars(); }
|
|
void Datastore_type(char *x) { _datastore_type = x; }
|
|
|
|
/*
|
|
This function shall return a string version of the receiver.
|
|
*/
|
|
char* get_PIDString();
|
|
#else
|
|
virtual void datastore_type (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ _datastore_type = x; }
|
|
|
|
virtual char * datastore_type (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return CORBA::string_dupl(_datastore_type); }
|
|
|
|
virtual char * get_PIDString (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return CORBA::string_dupl(_pidstring); }
|
|
#endif
|
|
|
|
#ifdef __OSTORE__
|
|
static os_typespec* get_os_typespec();
|
|
#endif
|
|
|
|
};
|
|
|
|
#ifdef PART26
|
|
//DEF_TIE_PID( SCLP23_NAME(PID) )
|
|
#endif
|
|
|
|
typedef SCLP23_NAME(PID)* SCLP23_NAME(PID_ptr);
|
|
typedef SCLP23_NAME(PID_ptr) SCLP23_NAME(PID_var);
|
|
|
|
|
|
// interface PID_DA (ISO/DIS 10303-23:1996(E) 5.3.10.3)
|
|
// Also, CORBA POS specification, Direct Access Protocol, Section 5.10.1
|
|
//
|
|
// The Direct Access Protocol supports direct access to persistent data
|
|
// through typed attributes organized in data objects that are defined
|
|
// in a Data Definition Language (DDL). An object using this protocol
|
|
// whould represent its persistent data as one or more interconnected
|
|
// data objects, For uniformity, the persistent data of an object is
|
|
// described as a single data object; however, that data object might be
|
|
// the root of a graph of data objects interconnected by stored data
|
|
// object references. If an object uses multiple data objects, the
|
|
// object traverses the graph by following stored data object references.
|
|
//
|
|
// The PID_DA class maintains the persistent object identifier for an
|
|
// application DAObject.
|
|
//
|
|
// POS: The Persistent Identifiers (PIDs) used by the PDS_DA contain
|
|
// an object identifier that is local to the particular PDS. This value
|
|
// may be accessed through this extension to the CosPersistencePID
|
|
// interface.
|
|
//
|
|
|
|
class SCLP23_NAME(PID_DA): public SCLP23_NAME(PID)
|
|
{
|
|
public:
|
|
|
|
SCLP23_NAME(String) _oid ;
|
|
// oid (ISO/DIS 10303-23:1996(E) 5.3.10.3)
|
|
//
|
|
// This attribute shall set and return the string representation of the
|
|
// persistent identifier, local to the Model_contents, of the DAObject
|
|
// referred to by this object.
|
|
//
|
|
// POS: This returns the data object identifier used by this PDS for
|
|
// the data object specified by the PID. The SCLP23(DAObjectID) type is
|
|
// defined as an unbounded sequence of bytes that may be
|
|
// vendor-dependent.
|
|
//
|
|
|
|
// constructor/destructor
|
|
SCLP23_NAME(PID_DA)();
|
|
virtual ~SCLP23_NAME(PID_DA)();
|
|
|
|
#ifndef PART26
|
|
virtual void oid (const SCLP23_NAME(DAObjectID) x) { _oid = x; }
|
|
virtual SCLP23_NAME(DAObjectID) oid () const
|
|
{ return (char*) _oid.chars(); }
|
|
#else
|
|
// virtual void oid (const SCLP26(DAObjectID) x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
virtual void oid (const DAObjectID x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ _oid = x; }
|
|
// virtual SCLP26(DAObjectID) oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
virtual DAObjectID oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return CORBA::string_dupl(_oid); }
|
|
#endif
|
|
|
|
#ifdef __OSTORE__
|
|
static os_typespec* get_os_typespec();
|
|
#endif
|
|
|
|
};
|
|
|
|
#ifdef PART26
|
|
//DEF_TIE_PID_DA( SCLP23(PID_DA) )
|
|
#endif
|
|
|
|
typedef SCLP23_NAME(PID_DA)* SCLP23_NAME(PID_DA_ptr);
|
|
typedef SCLP23_NAME(PID_DA_ptr) SCLP23_NAME(PID_DA_var);
|
|
|
|
// interface PID_SDAI (ISO/DIS 10303-23:1996(E) 5.3.10.2)
|
|
//
|
|
// The PID_SDAI class maintains the persistent object identifier for
|
|
// a Model_contents object.
|
|
//
|
|
class SCLP23_NAME(PID_SDAI) : public SCLP23_NAME(PID)
|
|
{
|
|
public:
|
|
SCLP23_NAME(String) _modelid ;
|
|
|
|
// static PID_SDAI_ptr _duplicate(PID_SDAI_ptr);
|
|
// static PID_SDAI_ptr _narrow(SCLP23_NAME(sdaiObject_ptr));
|
|
// static PID_SDAI_ptr _nil();
|
|
|
|
// constructor/destructor
|
|
SCLP23_NAME(PID_SDAI)();
|
|
virtual ~SCLP23_NAME(PID_SDAI)();
|
|
|
|
// Modelid (ISO/DIS 10303-23:1996(E) 5.3.10.3)
|
|
//
|
|
// This attribute shall set and return the string representation of
|
|
// the persistent identifier of the cluster of data for the
|
|
// Model_contents referred to by this PID.
|
|
//
|
|
#ifndef PART26
|
|
virtual void Modelid (const char * x) { _modelid = x; }
|
|
virtual char * Modelid () const { return (char*) _modelid.chars(); }
|
|
#else
|
|
virtual void Modelid (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ _modelid = x; }
|
|
|
|
virtual char * Modelid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return CORBA::string_dupl(_modelid); }
|
|
#endif
|
|
|
|
#ifdef __OSTORE__
|
|
static os_typespec* get_os_typespec();
|
|
#endif
|
|
|
|
};
|
|
|
|
#ifdef PART26
|
|
//DEF_TIE_PID_SDAI( SCLP23(PID_SDAI) )
|
|
#endif
|
|
|
|
typedef SCLP23_NAME(PID_SDAI)* SCLP23_NAME(PID_SDAI_ptr);
|
|
typedef SCLP23_NAME(PID_SDAI_ptr) SCLP23_NAME(PID_SDAI_var);
|
|
|
|
// interface DAObject (ISO/DIS 10303-23:1996(E) 5.3.10.5)
|
|
// Also, CORBA POS Section 5.10.2, Direct Access Protocol.
|
|
//
|
|
// From POS: The DAObject interface provides operations that many data
|
|
// object clients need. A Datastore implementation may provide support
|
|
// for these operations automatically for its data objects. A data object
|
|
// is not required to support this interface. A client can obtain access
|
|
// to these operations by narrowing a data object reference to the
|
|
// DAObject interface.
|
|
//
|
|
|
|
// predefine these _ptr since they are used inside this class
|
|
class SCLP23_NAME(DAObject);
|
|
typedef SCLP23_NAME(DAObject)* SCLP23_NAME(DAObject_ptr);
|
|
typedef SCLP23_NAME(DAObject_ptr) SCLP23_NAME(DAObject_var);
|
|
|
|
class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
|
|
//class DAObject : public SCLP23_NAME(sdaiObject)
|
|
{
|
|
public:
|
|
|
|
SCLP23_NAME(String) _dado_oid;
|
|
// static DAObject_ptr _duplicate(DAObject_ptr);
|
|
// static DAObject_ptr _narrow(SCLP23_NAME(sdaiObject_ptr));
|
|
// static DAObject_ptr _nil();
|
|
|
|
// dado_same (ISO/DIS 10303-23:1996(E) 5.3.10.5)
|
|
//
|
|
// Returns TRUE if obj points to the same object as self
|
|
//
|
|
// POS specification description: This returns true if the target
|
|
// data object and the parameter data object are the same data object.
|
|
// This operation can be used to test data object references for
|
|
// identity.
|
|
//
|
|
|
|
// constructor/destructor
|
|
SCLP23_NAME(DAObject)();
|
|
virtual ~SCLP23_NAME(DAObject)();
|
|
|
|
#ifdef PART26
|
|
// virtual SCLP26(Application_instance_ptr) create_TIE();
|
|
virtual IDL_Application_instance_ptr create_TIE();
|
|
#endif
|
|
|
|
#ifndef PART26
|
|
SCLBOOL_H(Bool) dado_same(SCLP23_NAME(DAObject_ptr) obj)
|
|
{
|
|
// this will make the compiler happy that we used obj
|
|
strcmp(obj->dado_oid(),dado_oid());
|
|
return SCLBOOL_H(BUnset);
|
|
}
|
|
#else
|
|
virtual SCLBOOL_H(Bool) dado_same (SCLP23_NAME(DAObject_ptr) obj, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) { return SCLBOOL_H(BUnset); }
|
|
#endif
|
|
|
|
// Get persistent label (ISO/DIS 10303-22:1996(E) 10.11.6)
|
|
//
|
|
// This operation returns a persistent label for the specified
|
|
// application instance. The label shall be unique within the
|
|
// repository containing the SDAI-model containing the application
|
|
// instance. Any subsequent request for a persistent label for the
|
|
// same application instance shall return the same persistent label
|
|
// in the current or nay subsequent SDAI session.
|
|
//
|
|
// Possible Error indicators:
|
|
//
|
|
// sdaiTR_NEXS The transaction has not been started
|
|
// sdaiTR_NAVL The transaction is currently not available
|
|
// sdaiTR_EAB The transaction ended abnormally
|
|
// sdaiRP_NOPN The repository is not open
|
|
// sdaiEI_NEXS The entity instance does not exist
|
|
// sdaiFN_NAVL This function is not supported by the implementation
|
|
// sdaiSY_ERR An underlying system error occurred
|
|
//
|
|
// POS specification description: This returns the object identifier
|
|
// for the data object. The scope of data object identifiers is
|
|
// implementation-specific, but is not guaranteed to be global.
|
|
//
|
|
/* jg == The return value of this function in Part 23 is PID_DA which
|
|
seems wrong. We follow the CORBAservices specification here.
|
|
(Persistent Object Service Specification, Section 5.10). Also
|
|
note that the return value as described in the text above
|
|
should be a string type.
|
|
*/
|
|
#ifndef PART26
|
|
SCLP23_NAME(DAObjectID) dado_oid()
|
|
{ return (char*) _dado_oid.chars(); }
|
|
#else
|
|
// virtual SCLP26(DAObjectID) dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
virtual DAObjectID dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return CORBA::string_dupl(_dado_oid); }
|
|
#endif
|
|
|
|
// dado_pid
|
|
//
|
|
// POS specification description: This returns a PID_DA for the
|
|
// data object.
|
|
//
|
|
/* jg == This function is not included in Part 23 and 26. However, it is
|
|
part of interface DAObject in the specification of the
|
|
Persistent Object Service.
|
|
*/
|
|
#ifndef PART26
|
|
SCLP23_NAME(PID_DA_ptr) dado_pid()
|
|
{ return 0; }
|
|
#else
|
|
virtual SCLP23_NAME(PID_DA_ptr) dado_pid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ return 0; }
|
|
#endif
|
|
|
|
// dado_remove (ISO/DIS 10303-23:1996(E) 5.3.10.5)
|
|
//
|
|
// This function shall delete the object from persistent store and
|
|
// releases its resources. The function need not delete the aggregate-
|
|
// valued attributes of an object.
|
|
//
|
|
// POS specification description: This deletes the object from the
|
|
// persistent store and deletes the in-memory data object.
|
|
//
|
|
#ifndef PART26
|
|
void dado_remove()
|
|
{ }
|
|
#else
|
|
virtual void dado_remove (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ }
|
|
#endif
|
|
|
|
// dado_free (ISO/DIS 10303-23:1996(E) 5.3.10.5)
|
|
//
|
|
// This function shall inform the implementation that it is free
|
|
// to move the object back to the persistent store.
|
|
//
|
|
// POS specification description: This informs the PDS (Persistent
|
|
// Data Service) that the data object is not required for the time
|
|
// being, and the PDS may move it back to persistent store. The data
|
|
// object must be preserved and must be brought back the next time it is
|
|
// referenced. This operation is only a hint and is provided to improve
|
|
// performance and resource usage.
|
|
//
|
|
#ifndef PART26
|
|
void dado_free()
|
|
{ }
|
|
#else
|
|
virtual void dado_free (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
|
|
{ }
|
|
#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
|
|
|
|
};
|
|
|
|
/*
|
|
5.3.10.1 DAObject_SDAI
|
|
*/
|
|
|
|
class SCLP23_NAME(DAObject_SDAI) : public SCLP23_NAME(DAObject) {
|
|
|
|
public:
|
|
SCLP23_NAME(DAObject_SDAI)();
|
|
// SCLP23_NAME(DAObject_SDAI)(const SCLP23_NAME(DAObject_SDAI)&);
|
|
|
|
virtual ~SCLP23_NAME(DAObject_SDAI)();
|
|
|
|
#ifdef PART26
|
|
// virtual SCLP26(Application_instance_ptr) create_TIE();
|
|
virtual IDL_Application_instance_ptr create_TIE();
|
|
#endif
|
|
|
|
/*
|
|
5.3.10.1.1 Find entity instance SDAI-model
|
|
*/
|
|
|
|
// Model_ptr Owning_model() const;
|
|
|
|
/*
|
|
The Owning_model function shall implement the SDAI operation, Find
|
|
entity instance SDAI-model.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ -------
|
|
Object receiver
|
|
Model return value
|
|
|
|
5.3.10.1.2 Find entity instance users
|
|
*/
|
|
|
|
// Object__list_var FindObjectUsers(const
|
|
// Schema_instance__list_var& aggr) const;
|
|
|
|
/*
|
|
The FindObjectUsers function shall implement the SDAI operation,
|
|
Find entity instance users.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
-------- --------
|
|
Instance receiver
|
|
Domain aggr
|
|
Result return value
|
|
|
|
5.3.10.1.3 Is same
|
|
*/
|
|
|
|
SCLLOG_H(Logical) IsSame(const SCLP23_NAME(sdaiObject_ptr)& otherEntity) const;
|
|
|
|
/*
|
|
Function:
|
|
The IsSame function shall determine whether the parameter otherEntity
|
|
refers to the same instance as the receiver. This function shall
|
|
implement the behaviour of the EXPRESS operator (:=:).
|
|
|
|
Output:
|
|
This function shall return TRUE if the two instances are identical.
|
|
This function shall return FALSE if the two instances are not identical.
|
|
This function shall return UNKNOWN if either instance is unset.
|
|
|
|
Possible error indicators:
|
|
sdaiMX_NDEF // SDAI-model access not defined
|
|
sdaiEI_NEXS // Entity instance does not exist
|
|
sdaiTY_NDEF // Type not defined
|
|
sdaiSY_ERR // Underlying system error
|
|
|
|
Origin: Convenience function
|
|
|
|
5.3.10.1.4 Get attribute
|
|
*/
|
|
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
Any_var GetAttr(const Attribute_ptr& attDef);
|
|
Any_var GetAttr(const char* attName);
|
|
#endif
|
|
|
|
/*
|
|
The GetAttr functions shall implement the SDAI operation, Get attribute.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ ---------
|
|
Object receiver
|
|
Attribute attDef, attName
|
|
Value return value
|
|
|
|
5.3.10.1.5 Get instance type
|
|
*/
|
|
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
const Entity_ptr GetInstanceType() const;
|
|
#endif
|
|
|
|
/*
|
|
Function:
|
|
|
|
The GetInstanceType functions shall implement the SDAI operation,
|
|
Get instance type.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ --------
|
|
Object receiver
|
|
Type return value
|
|
|
|
5.3.10.1.6 Is instance of
|
|
*/
|
|
|
|
SCLBOOL_H(Bool) IsInstanceOf(const char* typeName) const;
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
SCLBOOL_H(Bool) IsInstanceOf(const Entity_ptr& otherEntity) const;
|
|
#endif
|
|
|
|
/*
|
|
Function:
|
|
The IsInstanceOf functions shall implement the SDAI operation Is
|
|
instance of.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ --------
|
|
Object receiver
|
|
Type typeName, otherEntity
|
|
Result return value
|
|
|
|
5.3.10.1.7 Is kind of
|
|
*/
|
|
|
|
SCLBOOL_H(Bool) IsKindOf(const char* typeName) const;
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
SCLBOOL_H(Bool) IsKindOf(const Entity_ptr& theType) const;
|
|
#endif
|
|
|
|
/*
|
|
The IsKindOf functions shall implement the SDAI operation, Is kind of.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ --------
|
|
Object receiver
|
|
Type typeName, theType
|
|
Result return value
|
|
|
|
5.3.10.1.8 Is SDAI kind of
|
|
*/
|
|
|
|
SCLBOOL_H(Bool) IsSDAIKindOf(const char* typeName) const;
|
|
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
SCLBOOL_H(Bool) IsSDAIKindOf(const Entity_ptr& theType) const;
|
|
#endif
|
|
|
|
/*
|
|
The IsSDAIKindOf functions shall implement the SDAI operation,
|
|
Is SDAI Kind Of.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ --------
|
|
Object receiver
|
|
Type typeName, theType
|
|
Result return value
|
|
|
|
5.3.10.1.9 Test attribute
|
|
*/
|
|
|
|
#ifdef SDAI_CPP_LATE_BINDING
|
|
SCLBOOL_H(Bool) TestAttr(const Attribute_ptr& attDef);
|
|
SCLBOOL_H(Bool) TestAttr(const char* attName) const;
|
|
#endif
|
|
|
|
/*
|
|
The TestAttr functions shall implement the SDAI operation,
|
|
Test attribute.
|
|
|
|
The following specifies the coorespondence between each SDAI
|
|
input/output and its equivalent specified in this Part.
|
|
|
|
SDAI C++
|
|
------ ---------
|
|
Object receiver
|
|
Attribute attDef, attName
|
|
Result return value
|
|
|
|
5.3.10.1.10 Get instance type name
|
|
*/
|
|
|
|
#ifndef SDAI_CPP_LATE_BINDING
|
|
char * GetInstanceTypeName() const;
|
|
#endif
|
|
/*
|
|
Function:
|
|
The GetInstanceType function shall retrieve the name of the type of
|
|
the receiver.
|
|
|
|
Output:
|
|
This function shall return a String which contains the name of the
|
|
type of the receiver. The returned name shall be the name as it
|
|
appears in the Dictionary Model.
|
|
|
|
Possible error indicators:
|
|
sdaiMX_NDEF // SDAI-model access not defined
|
|
sdaiEI_NEXS // Entity instance does not exist
|
|
sdaiSY_ERR // Underlying system error
|
|
|
|
Origin: Convenience function
|
|
*/
|
|
|
|
#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(DAObject_SDAI)* SCLP23_NAME(DAObject_SDAI_ptr);
|
|
typedef SCLP23_NAME(DAObject_SDAI_ptr) SCLP23_NAME(DAObject_SDAI_var);
|
|
|
|
class SCLP23_NAME(DAObject__set) {
|
|
public:
|
|
#ifdef __OSTORE__
|
|
os_Collection<SCLP23_NAME(DAObject_ptr)> &_rep;
|
|
os_Cursor<SCLP23_NAME(DAObject_ptr)> _cursor;
|
|
SCLBOOL_H(Bool) _first;
|
|
#endif
|
|
|
|
SCLP23_NAME(DAObject__set)(int = 16);
|
|
~SCLP23_NAME(DAObject__set)();
|
|
|
|
SCLP23_NAME(DAObject_ptr) retrieve(int index);
|
|
int is_empty();
|
|
|
|
#ifndef __OSTORE__
|
|
SCLP23_NAME(DAObject_ptr)& operator[](int index);
|
|
#endif
|
|
|
|
void Insert(SCLP23_NAME(DAObject_ptr), int index);
|
|
void Append(SCLP23_NAME(DAObject_ptr));
|
|
void Remove(int index);
|
|
#ifndef __OSTORE__
|
|
int Index(SCLP23_NAME(DAObject_ptr));
|
|
|
|
void Clear();
|
|
#endif
|
|
int Count();
|
|
|
|
#ifdef __OSTORE__
|
|
// cursor stuff
|
|
SCLP23_NAME(DAObject_ptr) first();
|
|
SCLP23_NAME(DAObject_ptr) next();
|
|
SCLP23_NAME(Integer) more();
|
|
#endif
|
|
|
|
private:
|
|
void Check(int index);
|
|
private:
|
|
SCLP23_NAME(DAObject_ptr)* _buf;
|
|
int _bufsize;
|
|
int _count;
|
|
|
|
public:
|
|
|
|
#ifdef __OSTORE__
|
|
static os_typespec* get_os_typespec();
|
|
#endif
|
|
};
|
|
|
|
typedef SCLP23_NAME(DAObject__set)* SCLP23_NAME(DAObject__set_ptr);
|
|
typedef SCLP23_NAME(DAObject__set_ptr) SCLP23_NAME(DAObject__set_var);
|
|
|
|
#endif
|