FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEclass Class Reference

FARGOS/VISTA Object Management Environment class description. More...

#include <OMEclass.h>

Public Member Functions

 OMEclass (OMEnameSpaceGroup *nameSpace, const OMEstring &name, const uint32_t verID, const uint32_t iSize, const bool unique=0, const CreateInstanceFP csRoutine=OMEdefaultInstanceCreate, const DeleteInstanceFP dsRoutine=OMEdefaultInstanceDelete)
 
 ~OMEclass ()
 
void setMetaObject (const OMEoid &obj)
 
void setMetaObject (const OMEtype &obj)
 
int addMethod (OMEmethodP)
 Add method implementation. More...
 
OME_FAST_CALL OMEmethodP findMethod (const OMEstring &methodName, const uint32_t indx=0) const
 
OME_FAST_CALL OMEinvocationDatafindMethodImplementation (const uint32_t signature, const OMEstring &methodName, const uint32_t indx=0) const
 
OME_FAST_CALL int listMethodInfo (OMEassoc &result) const
 
int setStorageDescription (const struct OMEinstanceVarDescr *desc)
 
uint_fast16_t setStorageDescription (const OMEarray &oil2Data)
 
int inheritFromClass (const OMEstring &nameSpace, const OMEstring &name, const uint32_t verID=0, const bool unique=false)
 
int inheritFromClass (const char *nameSpace, const char *name, const uint32_t verID=0, const bool unique=false)
 
bool resolved () const
 
bool permitInheritOfUniqueCopy () const
 
uint_fast16_t inheritListTotal () const
 
OME_FAST_CALL OMEclassgetClassAtLevel (uint_fast16_t level) const
 
const OME_FAST_CALL unsigned char * getSearchOrder (uint8_t *count, const int_fast16_t startLevel=-1) const NONNULL_CLASS_PARAMETERS(2)
 Get table of indexes that specify class search order. More...
 
uint_fast32_t getNextInstanceID ()
 
const OMEarraygetVariableDescriptions () const
 
const OMEstringgetNameSpaceName () const
 
bool doesInheritFrom (const OMEclass *aClass, OMEstring *fromClassName=nullptr, uint32_t *fromClassVerID=nullptr) const
 
int resolveLinkages (OMEstring *missingClassName=nullptr, uint32_t *missingClassVersionID=nullptr)
 Attempt to resolve inheritance tree. More...
 
void * createInstanceData ()
 Allocate and initialize storage for instance variables. More...
 
void deleteInstanceData (void *iData)
 Delete instance variable storage. More...
 
OME_FAST_CALL OMEtypeextractInstanceData (const void *iData, bool annotate) const
 
OME_FAST_CALL int importInstanceData (void *iData, const OMEtype &data) const
 
template<typename STREAMTYPE >
STREAMTYPE & dumpClassData (STREAMTYPE &o=std::cout) const
 

Public Attributes

OMEstring className
 
uint32_t versionID
 
uint32_t hashIndex
 OMEhash(className) More...
 
uint32_t instanceSize
 required storage in bytes More...
 
OMEoidmetaObject
 

Private Member Functions

bool inheritsFrom (const OMEclass *aClass, const OMEstring *baseClassName=nullptr, const uint32_t *baseClassVerID=nullptr) const
 
void buildInheritanceGraph (uint_fast16_t *count, class OMEinheritGraphNode *l[])
 
uint8_t computeSearchOrder (uint8_t searchList[], const int_fast16_t startLevel=-1, const uint8_t currentCount=0) const
 
int addMethodName (OMEstring &name, OMEmethodP methodRecord)
 

Private Attributes

class OMEnameSpaceGroupnameSpaceInfo
 
class OMEinheritEntry * inheritList
 
std::map< uint32_t, OMEmethodPmethodTable
 
bool resolvedFlag
 
bool forceInheritUnique
 
uint32_t instanceCount
 
uint_fast16_t classInstanceTotal
 
class OMEinheritGraphNode ** classInstances
 
uint8_t * searchOrderLists
 
CreateInstanceFP storageCreateRoutine
 
DeleteInstanceFP storageDeleteRoutine
 
struct OMEinstanceVarDescr const * varDescRec
 
OMEarray variableDescriptions
 

Detailed Description

FARGOS/VISTA Object Management Environment class description.

Constructor & Destructor Documentation

◆ OMEclass()

OMEclass::OMEclass ( OMEnameSpaceGroup nameSpace,
const OMEstring name,
const uint32_t  verID,
const uint32_t  iSize,
const bool  unique = 0,
const CreateInstanceFP  csRoutine = OMEdefaultInstanceCreate,
const DeleteInstanceFP  dsRoutine = OMEdefaultInstanceDelete 
)

◆ ~OMEclass()

Member Function Documentation

◆ addMethod()

int OMEclass::addMethod ( OMEmethodP  methodRecord)

◆ addMethodName()

int OMEclass::addMethodName ( OMEstring name,
OMEmethodP  methodRecord 
)
private

◆ buildInheritanceGraph()

void OMEclass::buildInheritanceGraph ( uint_fast16_t *  count,
class OMEinheritGraphNode *  l[] 
)
private

References inheritList.

Referenced by resolveLinkages().

◆ computeSearchOrder()

uint8_t OMEclass::computeSearchOrder ( uint8_t  searchList[],
const int_fast16_t  startLevel = -1,
const uint8_t  currentCount = 0 
) const
private

References classInstances, and classInstanceTotal.

Referenced by resolveLinkages().

◆ createInstanceData()

void * OMEclass::createInstanceData ( )

Allocate and initialize storage for instance variables.

The class-specific instance variable allocation is called.

Returns
A pointer to the base of the allocated storage.

◆ deleteInstanceData()

void OMEclass::deleteInstanceData ( void *  iData)

Delete instance variable storage.

The class-specific deconstructor is called to delete the instance variables and deallocate associated storage.

Parameters
iDatais a pointer to the base of the instance variable storage. It will have previously been obtained by a call to createInstanceData().

◆ doesInheritFrom()

bool OMEclass::doesInheritFrom ( const OMEclass aClass,
OMEstring fromClassName = nullptr,
uint32_t *  fromClassVerID = nullptr 
) const

◆ dumpClassData()

template<typename STREAMTYPE >
STREAMTYPE & OMEclass::dumpClassData ( STREAMTYPE &  o = std::cout) const

◆ extractInstanceData()

OMEtype * OMEclass::extractInstanceData ( const void *  iData,
bool  annotate 
) const

◆ findMethod()

OMEmethod * OMEclass::findMethod ( const OMEstring methodName,
const uint32_t  indx = 0 
) const

◆ findMethodImplementation()

OMEinvocationData * OMEclass::findMethodImplementation ( const uint32_t  signature,
const OMEstring methodName,
const uint32_t  indx = 0 
) const

◆ getClassAtLevel()

OME_FAST_CALL OMEclass * OMEclass::getClassAtLevel ( uint_fast16_t  level) const

◆ getNameSpaceName()

const OMEstring & OMEclass::getNameSpaceName ( ) const

◆ getNextInstanceID()

uint_fast32_t OMEclass::getNextInstanceID ( )
inline

References instanceCount.

Referenced by OMEobject::OMEobject().

◆ getSearchOrder()

const unsigned char * OMEclass::getSearchOrder ( uint8_t *  count,
const int_fast16_t  startLevel = -1 
) const

Get table of indexes that specify class search order.

Parameters
countpoints to a location into which the number of class entries returned is stored.
startLevelis used to indicate the number of levels to be selected. If -1, the value is determined from the class description.
Returns
a pointer to the list of indexes is returned.

References classInstanceTotal, and searchOrderLists.

Referenced by OMEobjectInstance::findRoutine().

◆ getVariableDescriptions()

const OMEarray & OMEclass::getVariableDescriptions ( ) const

◆ importInstanceData()

int OMEclass::importInstanceData ( void *  iData,
const OMEtype data 
) const

◆ inheritFromClass() [1/2]

int OMEclass::inheritFromClass ( const char *  nameSpace,
const char *  name,
const uint32_t  verID = 0,
const bool  unique = false 
)
inline

References inheritFromClass().

◆ inheritFromClass() [2/2]

int OMEclass::inheritFromClass ( const OMEstring nameSpace,
const OMEstring name,
const uint32_t  verID = 0,
const bool  unique = false 
)

References inheritList, instanceCount, and resolvedFlag.

Referenced by inheritFromClass().

◆ inheritListTotal()

◆ inheritsFrom()

bool OMEclass::inheritsFrom ( const OMEclass aClass,
const OMEstring baseClassName = nullptr,
const uint32_t *  baseClassVerID = nullptr 
) const
private

◆ listMethodInfo()

int OMEclass::listMethodInfo ( OMEassoc result) const

◆ permitInheritOfUniqueCopy()

bool OMEclass::permitInheritOfUniqueCopy ( ) const
inline

References forceInheritUnique.

◆ resolved()

bool OMEclass::resolved ( ) const
inline

◆ resolveLinkages()

int OMEclass::resolveLinkages ( OMEstring missingClassName = nullptr,
uint32_t *  missingClassVersionID = nullptr 
)

Attempt to resolve inheritance tree.

Parameters
missingClassNameis an optional parameter which defaults to a null pointer.
missingClassVersionIDis an optional parameter which defaults to a null pointer. If a inherited class cannot be resolved, the OMEstring pointed to by missingClassName will be filled in with the name of the missing class and the location pointed to by missingClassVerID will be filled with the version Id.
Return values
0indicates success.
OME_ERROR_NO_SUCH_CLASSindicates a required class was not found.
OME_ERROR_CIRCULAR_INHERITANCEindicates an attempt was made to inherit from a class which inherits in some way from a class that inherits it.

References buildInheritanceGraph(), classInstances, classInstanceTotal, computeSearchOrder(), inheritList, MAX_INHERIT_TOTAL, OME_ERROR_CIRCULAR_INHERITANCE, OME_ERROR_NO_SUCH_CLASS, OMEfindClassDescription(), resolvedFlag, and searchOrderLists.

Referenced by OMEobjectInstance::createObject(), and OMEobjectInstance::importObject().

◆ setMetaObject() [1/2]

void OMEclass::setMetaObject ( const OMEoid obj)
inline

References metaObject.

Referenced by OILsetClassMetaObject().

◆ setMetaObject() [2/2]

void OMEclass::setMetaObject ( const OMEtype obj)
inline

◆ setStorageDescription() [1/2]

uint_fast16_t OMEclass::setStorageDescription ( const OMEarray oil2Data)

◆ setStorageDescription() [2/2]

int OMEclass::setStorageDescription ( const struct OMEinstanceVarDescr desc)

References varDescRec.

Member Data Documentation

◆ classInstances

class OMEinheritGraphNode** OMEclass::classInstances
private

◆ classInstanceTotal

uint_fast16_t OMEclass::classInstanceTotal
private

◆ className

◆ forceInheritUnique

bool OMEclass::forceInheritUnique
private

◆ hashIndex

◆ inheritList

class OMEinheritEntry* OMEclass::inheritList
private

◆ instanceCount

uint32_t OMEclass::instanceCount
private

◆ instanceSize

uint32_t OMEclass::instanceSize

required storage in bytes

Referenced by OMEclass(), and OMEdefaultInstanceCreate().

◆ metaObject

OMEoid* OMEclass::metaObject

Referenced by OMEclass(), setMetaObject(), and ~OMEclass().

◆ methodTable

std::map<uint32_t, OMEmethodP> OMEclass::methodTable
private

◆ nameSpaceInfo

class OMEnameSpaceGroup* OMEclass::nameSpaceInfo
private

Referenced by getNameSpaceName(), and OMEclass().

◆ resolvedFlag

bool OMEclass::resolvedFlag
private

◆ searchOrderLists

uint8_t* OMEclass::searchOrderLists
private

◆ storageCreateRoutine

CreateInstanceFP OMEclass::storageCreateRoutine
private

Referenced by OMEclass().

◆ storageDeleteRoutine

DeleteInstanceFP OMEclass::storageDeleteRoutine
private

Referenced by OMEclass().

◆ varDescRec

struct OMEinstanceVarDescr const* OMEclass::varDescRec
private

◆ variableDescriptions

OMEarray OMEclass::variableDescriptions
mutableprivate

◆ versionID


The documentation for this class was generated from the following files:
Generated: Tue Jul 28 2020 16:03:27
Support Information