Go to the documentation of this file.
2 #define _OME_CLASS_H "$Id: OMEclass.h 347 2020-05-21 04:13:52Z geoff $"
45 const uint32_t *baseClassVerID =
nullptr)
const;
50 const int_fast16_t startLevel = -1,
51 const uint8_t currentCount = 0)
const;
62 const uint32_t verID,
const uint32_t iSize,
63 const bool unique = 0,
86 const uint32_t indx=0)
const;
89 const OMEstring &methodName,
const uint32_t indx = 0)
const;
98 const uint32_t verID = 0,
const bool unique =
false);
101 const uint32_t verID = 0,
const bool unique =
false)
129 OMEstring *fromClassName =
nullptr, uint32_t *fromClassVerID =
nullptr)
const;
132 uint32_t *missingClassVersionID =
nullptr);
142 template <
typename STREAMTYPE> STREAMTYPE &
dumpClassData(STREAMTYPE &o = std::cout)
const;
ssize_t substr(const OMEstring &sub, size_t startOffset=0) const
Definition: OMEstring.h:490
Ïúíþ ð Ø ˜ ˜ __text __TEXT € __apple_names __DWARF __apple_objc __DWARF __apple_namespac__DWARF H X __apple_types __DWARF l
Definition: tmp3.o.cpp:1
#define MAX_INHERIT_TOTAL
Definition: OMEclass.cpp:409
@ OME_FLOAT
Definition: OMEmanifests.h:82
#define OME_DELETE_OBJECT(ptr)
Definition: OMEmanifests.h:159
void initializeAsType(const enum OMEtypes_t t)
The fundamental tagged data type used through the FARGOS/VISTA infrastructure.
Definition: OMEtype.cpp:95
uint_fast16_t inheritListTotal() const
Definition: OMEclass.h:111
OME_CORE_CALL void * OMEdefaultInstanceCreate(const class OMEclass *cInfo)
OMEclass * OMEclassP
Definition: OMEclass.h:145
OME_FAST_CALL int listMethodInfo(OMEassoc &result) const
Definition: OMEclass.cpp:333
Mapping table to class implementations within a namespace.
Definition: OMEnamespace.h:18
uint_fast16_t classInstanceTotal
Definition: OMEclass.h:33
bool permitInheritOfUniqueCopy() const
Definition: OMEclass.h:109
class OMEinheritGraphNode ** classInstances
Definition: OMEclass.h:34
@ OME_UINT16
Definition: OMEmanifests.h:98
~OMEclass()
Definition: OMEclass.cpp:158
uint_fast16_t OMEconvertToStorageDescription(OMEarray &varDesc, const struct OMEinstanceVarDescr *desc)
Implements associative array of OMEtype elements.
Definition: OMEassoc.h:112
Implements text and binary string storage.
Definition: OMEstring.h:305
uint32_t instanceCount
Definition: OMEclass.h:31
OME_FAST_CALL OMEinvocationData * findMethodImplementation(const uint32_t signature, const OMEstring &methodName, const uint32_t indx=0) const
Definition: OMEclass.cpp:321
int setStorageDescription(const struct OMEinstanceVarDescr *desc)
Definition: OMEclass.cpp:224
void setMetaObject(const OMEoid &obj)
Definition: OMEclass.h:69
bool indexExists(const uint32_t i) const
Definition: OMEarray.h:202
#define OME_DELETE_OBJECT_VECTOR(ptr)
Definition: OMEmanifests.h:160
OME_FAST_CALL OMEinvocationData * findImplementationWithSignature(const uint32_t sig) const
Definition: OMEmethod.cpp:123
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
OME_DLL_EXPORT uint32_t OMEhash(const unsigned char *data, const uint32_t len) NONNULL_PARAMETERS(1)
Fast 32-bit hash over a buffer.
Definition: OMEhash.cpp:13
@ OME_DOUBLE
Definition: OMEmanifests.h:83
void * createInstanceData()
Allocate and initialize storage for instance variables.
Definition: OMEclass.cpp:113
class OMEoid * oid
Definition: OMEbaseType.h:297
Description of an OME method.
Definition: OMEmethod.h:82
@ OME_UINT32
Definition: OMEmanifests.h:96
OME_FAST_CALL int importInstanceData(void *iData, const OMEtype &data) const
Definition: OMEclass.cpp:691
class OMEstring * s
Definition: OMEbaseType.h:299
#define NONNULL_CLASS_PARAMETERS(...)
Mark a function as never returning a null pointer.
Definition: compiler_hints.h:337
OMEstring methodName
Definition: OMEmethod.h:86
void buildInheritanceGraph(uint_fast16_t *count, class OMEinheritGraphNode *l[])
Definition: OMEclass.cpp:511
int32_t i
Definition: OMEbaseType.h:285
Meta data record to describe an instance variable of a class.
Definition: OMEnamespace.h:76
OME_FAST_CALL OMEmethodP findMethod(const OMEstring &methodName, const uint32_t indx=0) const
Definition: OMEclass.cpp:294
FARGOS/VISTA Object Management Environment class description.
Definition: OMEclass.h:24
void deleteInstanceData(void *iData)
Delete instance variable storage.
Definition: OMEclass.cpp:128
#define OME_ERROR_NO_SUCH_CLASS
Definition: OMEerror.h:15
int resolveLinkages(OMEstring *missingClassName=nullptr, uint32_t *missingClassVersionID=nullptr)
Attempt to resolve inheritance tree.
Definition: OMEclass.cpp:428
void * OMEdefaultInstanceCreate(const OMEclass *cInfo)
Definition: OMEclass.cpp:79
OME_CORE_CALL void(* DeleteInstanceFP)(const class OMEclass *cInfo, void *data)
Definition: OMEclass.h:17
uint32_t instanceSize
required storage in bytes
Definition: OMEclass.h:58
OMEclass * OMEfindClassDescription(const OMEstring &className, const uint32_t verID, const OMEstring *nmSpace)
Definition: OMEnamespace.cpp:165
uint32_t hashIndex
OMEhash(className)
Definition: OMEclass.h:57
const char srcID[]
Definition: catSym.c:17
OME_FAST_CALL OMEtype * extractInstanceData(const void *iData, bool annotate) const
Definition: OMEclass.cpp:617
int addMethod(OMEmethodP)
Add method implementation.
Definition: OMEclass.cpp:277
#define OME_EXPECT_TRUE(expr)
Annotation macro for conditional expression expected to be true.
Definition: compiler_hints.h:541
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.
Definition: OMEclass.cpp:501
@ OME_OID
Definition: OMEmanifests.h:84
float f
Definition: OMEbaseType.h:287
OMEtypes_t
Definition: OMEmanifests.h:77
const OMEstring & getNameSpaceName() const
Definition: OMEclass.cpp:249
void OMEdefaultInstanceDelete(const OMEclass *cInfo, void *data)
Definition: OMEclass.cpp:99
class OMEnameSpaceGroup * nameSpaceInfo
Definition: OMEclass.h:26
uint8_t * searchOrderLists
Definition: OMEclass.h:35
OME_CORE_CALL void OMEdefaultInstanceDelete(const class OMEclass *cInfo, void *data)
#define OME_ARRAY_SUBSCRIPT_t(v)
Definition: OMEarray.h:293
CreateInstanceFP storageCreateRoutine
Definition: OMEclass.h:37
OME fundamental type implementation.
class OMEinheritEntry * inheritList
Definition: OMEclass.h:27
OME_CORE_CALL void *(* CreateInstanceFP)(const class OMEclass *cInfo)
Definition: OMEclass.h:16
const OMEarray & getVariableDescriptions() const
Definition: OMEclass.cpp:238
OME_FAST_CALL OMEclass * getClassAtLevel(uint_fast16_t level) const
Definition: OMEclass.cpp:184
uint32_t ui
Definition: OMEbaseType.h:286
size_t length() const
Definition: OMEstring.h:401
STREAMTYPE & dumpClassData(STREAMTYPE &o=std::cout) const
Definition: OMEclass.cpp:598
int inheritFromClass(const char *nameSpace, const char *name, const uint32_t verID=0, const bool unique=false)
Definition: OMEclass.h:100
#define OME_ERROR_CIRCULAR_INHERITANCE
Definition: OMEerror.h:16
OME_FAST_CALL uint_fast32_t listMethodInfo(OMEarray &result, const uint_fast32_t count=0) const
Definition: OMEmethod.cpp:166
const char srcID[] OME_USED
Definition: tick_time.cpp:24
bool resolved() const
Definition: OMEclass.h:107
uint32_t versionID
Definition: OMEclass.h:56
OMEstring className
Definition: OMEclass.h:55
void addReadOnlyReference()
Definition: OMErefCount.cpp:139
int addMethodName(OMEstring &name, OMEmethodP methodRecord)
Definition: OMEclass.cpp:254
bool resolvedFlag
Definition: OMEclass.h:29
void setMetaObject(const OMEtype &obj)
Definition: OMEclass.h:74
uint8_t computeSearchOrder(uint8_t searchList[], const int_fast16_t startLevel=-1, const uint8_t currentCount=0) const
Definition: OMEclass.cpp:556
Record to describe the implementation of the method of an OME class.
Definition: OMEmethod.h:35
OMEarray variableDescriptions
Definition: OMEclass.h:41
uint_fast32_t getNextInstanceID()
Definition: OMEclass.h:118
const char * varName
Definition: OMEnamespace.h:77
void addImplementation(OMEinvocationData *impl)
Definition: OMEmethod.cpp:96
@ OME_UINT8
Definition: OMEmanifests.h:99
#define OME_FAST_CALL
Definition: compiler_hints.h:468
bool inheritsFrom(const OMEclass *aClass, const OMEstring *baseClassName=nullptr, const uint32_t *baseClassVerID=nullptr) const
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)
Definition: OMEclass.cpp:133
#define _STD
Definition: OMEmanifests.h:146
OME debug and profiling interfaces.
struct OMEinstanceVarDescr const * varDescRec
Definition: OMEclass.h:40
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
int_fast32_t dropReference()
Definition: OMErefCount.cpp:144
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
uint32_t type
Definition: OMEbaseType.h:304
DeleteInstanceFP storageDeleteRoutine
Definition: OMEclass.h:38
bool doesInheritFrom(const OMEclass *aClass, OMEstring *fromClassName=nullptr, uint32_t *fromClassVerID=nullptr) const
Definition: OMEclass.cpp:364
int inheritFromClass(const OMEstring &nameSpace, const OMEstring &name, const uint32_t verID=0, const bool unique=false)
Definition: OMEclass.cpp:349
#define OME_CORE_CALL
Definition: compiler_hints.h:472
@ OME_ARRAY
Definition: OMEmanifests.h:86
#define OME_ERROR_BAD_DATA
Definition: OMEerror.h:21
#define OMEtype
Definition: tmp.o.cpp:396
std::map< uint32_t, OMEmethodP > methodTable
Definition: OMEclass.h:28
uint_fast16_t OMEconvertToStorageDescription(OMEarray &varDesc, const OMEinstanceVarDescr *desc)
Definition: OMEclass.cpp:188
bool forceInheritUnique
Definition: OMEclass.h:30
OMEoid * metaObject
Definition: OMEclass.h:59
@ OME_ASSOC
Definition: OMEmanifests.h:87
@ OME_INT32
Definition: OMEmanifests.h:79
const OMEstring & getNameSpace() const
Definition: OMEnamespace.h:30