FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEnamespace.h
Go to the documentation of this file.
1 #ifndef _OME_NAMESPACE_H
2 #define _OME_NAMESPACE_H "$Id: OMEnamespace.h 357 2020-06-18 23:13:25Z geoff $"
4 
6 #include <map>
7 
8 #include <OMEstring.h>
9 #include <OMEclass.h>
10 
19 private:
21  _STD map<uint32_t, class OMEclass *> classTable;
22 
23 public:
24  explicit OMEnameSpaceGroup(const OMEstring &name) : nameSpaceName(name) {
25 // nameSpaceName = name;
26  }
27 
29 
30  const OMEstring &getNameSpace() const { return (nameSpaceName); }
31 
32  int addClass(OMEclass *rec);
33 
34  OME_FAST_CALL OMEclass *findClass(const OMEstring &name, const uint32_t verID = 0) const;
35 }; // end class OMEnameSpaceGroup
36 
37 // TO DO: make static?
38 
39 OME_FAST_CALL OMEnameSpaceGroup *OMEfindNameSpace(const OMEstring &name, int *errCode = nullptr);
40 
42  int *errCode = nullptr);
43 
44 
45 
49 OMEclass *OMEdefineNewClass(const OMEstring &nmSpace, const OMEstring &name,
50  const uint32_t verID, const uint32_t iSize, const bool unique = false,
51  int *errCode = nullptr,
53  const DeleteInstanceFP dsRoutine = OMEdefaultInstanceDelete);
54 
58 inline OMEclass *OMEdefineNewClass(const char *nmSpace, const char *name,
59  const uint32_t verID, const uint32_t iSize, const bool unique = false,
60  int *errCode = nullptr,
63 {
64  return (OMEdefineNewClass(OMEstring(nmSpace), OMEstring(name),
65  verID, iSize, unique, errCode, csRoutine, dsRoutine));
66 }
67 
68 
69 
70 // find an existing class entry, returns 0 if not found
71 OME_FAST_CALL OMEclass *OMEfindClassDescription(const OMEstring &name, const uint32_t verID = 0,
72  const OMEstring *nmSpace = nullptr);
73 
77  const char *varName;
78  uint32_t declaredType;
79  uint32_t storageType;
80 };
81 
82 
87  const char *nameSpace;
88  const char *className;
89  uint32_t versionID;
90  const char *methodName;
91  uint32_t signature;
92  uint32_t anyMask;
93  uint32_t stackSize;
94  uint32_t invocationMode;
95  union {
96  NativeMethodFP function;
97  void *data;
98  } code;
102 };
103 
104 // define a method, caching prior results for efficiency
106 
107 OME_FAST_CALL const OMEstring &OMEshareConstant(const OMEstring &stringConstant);
108 
109 OME_FAST_CALL const OMEstring &OMEshareConstant(OMEstringInROM stringConstant, int precomputedLen = -1);
110 
112 
115 #endif
116 /* vim: set expandtab shiftwidth=4 tabstop=4: */
OMEprofileCounter< uint32_t >
OMEdefineNewClass
OMEclass * OMEdefineNewClass(const OMEstring &nmSpaceArg, const OMEstring &classNameArg, const uint32_t verID, const uint32_t iSize, const bool unique, int *errCode, const CreateInstanceFP csRoutine, const DeleteInstanceFP dsRoutine)
Create new class entry.
Definition: OMEnamespace.cpp:198
s
const char s[]
Definition: t.cpp:4
OMEinvocationData::function
NativeMethodFP function
Definition: OMEmethod.h:49
OMEinstanceVarDescr::declaredType
uint32_t declaredType
Definition: OMEnamespace.h:78
OMEnameSpaceGroup
Mapping table to class implementations within a namespace.
Definition: OMEnamespace.h:18
OMEfunctions.h
OME utility functions.
OMEinvocationData::signature
uint32_t signature
Definition: OMEmethod.h:44
OMEinvocationData::invocationMode
uint32_t invocationMode
Definition: OMEmethod.h:47
OMEstring.h
OME string implementation.
OMEmethodDefinition::function
NativeMethodFP function
Definition: OMEnamespace.h:96
OMEmethodDefinition::stackSize
uint32_t stackSize
Definition: OMEnamespace.h:93
OMEstring
Implements text and binary string storage.
Definition: OMEstring.h:305
OMEarray::indexExists
bool indexExists(const uint32_t i) const
Definition: OMEarray.h:202
OMEnameSpaceGroup::findClass
OME_FAST_CALL OMEclass * findClass(const OMEstring &name, const uint32_t verID=0) const
Definition: OMEnamespace.cpp:130
OMEtype::value
union OMEtype::@26 value
OMEdefineNewNameSpace
OMEnameSpaceGroup * OMEdefineNewNameSpace(const OMEstring &name, int *errCode)
Definition: OMEnamespace.cpp:55
OMEtype
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
OMEhash
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
OMEmethodDefinition::code
union OMEmethodDefinition::@31 code
OMEnameSpaceGroup::classTable
_STD map< uint32_t, class OMEclass * > classTable
Definition: OMEnamespace.h:21
OMEmethodDefinition::className
const char * className
Definition: OMEnamespace.h:88
OMEshareConstant
const OMEstring & OMEshareConstant(const OMEstring &stringConstant)
Definition: OMEnamespace.cpp:338
OMEstringInROM
const typedef void * OMEstringInROM
Points to immovable, read-only string data.
Definition: OMEstring.h:68
OMEmethod
Description of an OME method.
Definition: OMEmethod.h:82
OMEtype::s
class OMEstring * s
Definition: OMEbaseType.h:299
OMEinvocationData::setStorageDescription
int setStorageDescription(const struct OMEinstanceVarDescr *desc)
Definition: OMEmethod.cpp:69
OMEnameSpaceGroup::nameSpaceName
OMEstring nameSpaceName
Definition: OMEnamespace.h:20
OMEinstanceVarDescr::storageType
uint32_t storageType
Definition: OMEnamespace.h:79
OMEcore.h
NativeMethodFP
OME_CORE_CALL int(* NativeMethodFP)(class OMEthread *)
Typedef of a native method.
Definition: OMEmethod.h:20
OMEinstanceVarDescr
Meta data record to describe an instance variable of a class.
Definition: OMEnamespace.h:76
OMEclass::findMethod
OME_FAST_CALL OMEmethodP findMethod(const OMEstring &methodName, const uint32_t indx=0) const
Definition: OMEclass.cpp:294
OMEclass
FARGOS/VISTA Object Management Environment class description.
Definition: OMEclass.h:24
OME_ERROR_NO_SUCH_CLASS
#define OME_ERROR_NO_SUCH_CLASS
Definition: OMEerror.h:15
OMEmethodDefinition
Define method implementation.
Definition: OMEnamespace.h:86
OMEmethodDefinition::nameSpace
const char * nameSpace
Definition: OMEnamespace.h:87
OMEdefaultInstanceCreate
void * OMEdefaultInstanceCreate(const OMEclass *cInfo)
Definition: OMEclass.cpp:79
DeleteInstanceFP
OME_CORE_CALL void(* DeleteInstanceFP)(const class OMEclass *cInfo, void *data)
Definition: OMEclass.h:17
CreateStackFP
OME_CORE_CALL void *(* CreateStackFP)(const class OMEinvocationData *mInfo)
Typedef for stack creation routine associated with a native method.
Definition: OMEmethod.h:22
OMEfindClassDescription
OMEclass * OMEfindClassDescription(const OMEstring &className, const uint32_t verID, const OMEstring *nmSpace)
Definition: OMEnamespace.cpp:165
OMEmethodDefinition::signature
uint32_t signature
Definition: OMEnamespace.h:91
OMEclass::hashIndex
uint32_t hashIndex
OMEhash(className)
Definition: OMEclass.h:57
OMEsetNameSpaceSearchList
int OMEsetNameSpaceSearchList(const OMEarray &newList)
Definition: OMEnamespace.cpp:19
OMEinvocationData::anyMask
uint32_t anyMask
Definition: OMEmethod.h:45
OMEmethodDefinition::data
void * data
Definition: OMEnamespace.h:97
srcID
const char srcID[]
Definition: catSym.c:17
OME_STRING
@ OME_STRING
Definition: OMEmanifests.h:85
OMEnameSpaceGroup::~OMEnameSpaceGroup
~OMEnameSpaceGroup()
Definition: OMEnamespace.cpp:95
OMEinvocationData::stackSize
uint32_t stackSize
Definition: OMEmethod.h:46
OMEmethodDefinition::anyMask
uint32_t anyMask
Definition: OMEnamespace.h:92
OMEclass::addMethod
int addMethod(OMEmethodP)
Add method implementation.
Definition: OMEclass.cpp:277
OMEclass.h
OMEinvocationData::deleteStackRoutine
DeleteStackFP deleteStackRoutine
Definition: OMEmethod.h:53
OMEdefineNewMethod
int OMEdefineNewMethod(const OMEmethodDefinition &definitionRecord)
Definition: OMEnamespace.cpp:248
OMEclearNameSpaceTable
void OMEclearNameSpaceTable()
Definition: OMEnamespace.cpp:380
OMEdefaultInstanceDelete
void OMEdefaultInstanceDelete(const OMEclass *cInfo, void *data)
Definition: OMEclass.cpp:99
OMEfindNameSpace
OMEnameSpaceGroup * OMEfindNameSpace(const OMEstring &name, int *errCode)
Definition: OMEnamespace.cpp:38
CreateInstanceFP
OME_CORE_CALL void *(* CreateInstanceFP)(const class OMEclass *cInfo)
Definition: OMEclass.h:16
OMEerror.h
OME error codes.
OMEstring::length
size_t length() const
Definition: OMEstring.h:401
OMEinvocationData::createStackRoutine
CreateStackFP createStackRoutine
Definition: OMEmethod.h:52
OME_USED
const char srcID[] OME_USED
Definition: tick_time.cpp:24
OME_ERROR_NO_SUCH_NAMESPACE
#define OME_ERROR_NO_SUCH_NAMESPACE
Definition: OMEerror.h:13
OMEmethodDefinition::invocationMode
uint32_t invocationMode
Definition: OMEnamespace.h:94
DeleteStackFP
OME_CORE_CALL void(* DeleteStackFP)(const class OMEinvocationData *mInfo, void *data)
Typedef for stack delete routine associated with a native method.
Definition: OMEmethod.h:24
OMEclass::versionID
uint32_t versionID
Definition: OMEclass.h:56
OMEclass::className
OMEstring className
Definition: OMEclass.h:55
OMEmethodDefinition::threadVariables
const struct OMEinstanceVarDescr * threadVariables
Definition: OMEnamespace.h:101
OME_ERROR_DUPLICATE_CLASS
#define OME_ERROR_DUPLICATE_CLASS
Definition: OMEerror.h:12
OMEinvocationData
Record to describe the implementation of the method of an OME class.
Definition: OMEmethod.h:35
OMEmethodDefinition::methodName
const char * methodName
Definition: OMEnamespace.h:90
OMEnameSpaceGroup::OMEnameSpaceGroup
OMEnameSpaceGroup(const OMEstring &name)
Definition: OMEnamespace.h:24
OMEinstanceVarDescr::varName
const char * varName
Definition: OMEnamespace.h:77
OMEmethod::addImplementation
void addImplementation(OMEinvocationData *impl)
Definition: OMEmethod.cpp:96
OME_FAST_CALL
#define OME_FAST_CALL
Definition: compiler_hints.h:468
_STD
#define _STD
Definition: OMEmanifests.h:146
OMEdebugInfo.h
OME debug and profiling interfaces.
OMEmethodDefinition::deleteStackRoutine
DeleteStackFP deleteStackRoutine
Definition: OMEnamespace.h:100
OMEmethodDefinition::versionID
uint32_t versionID
Definition: OMEnamespace.h:89
OMEarray
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
OMEnamespace.h
OMEtype::type
uint32_t type
Definition: OMEbaseType.h:304
OMEinvocationData::next
class OMEinvocationData * next
Definition: OMEmethod.h:43
OMEnameSpaceGroup::addClass
int addClass(OMEclass *rec)
Definition: OMEnamespace.cpp:107
OMEarray::ARRAY_SUBSCRIPT_t
OMEarrayStorage::ARRAY_SUBSCRIPT_t ARRAY_SUBSCRIPT_t
Definition: OMEarray.h:90
OMEinvocationData::code
union OMEinvocationData::@30 code
OMEmethodDefinition::createStackRoutine
CreateStackFP createStackRoutine
Definition: OMEnamespace.h:99
OMEnameSpaceGroupP
OMEnameSpaceGroup * OMEnameSpaceGroupP
Definition: OMEnamespace.cpp:14
OMEshareConstantsDisabled
bool OMEshareConstantsDisabled
Definition: OMEnamespace.cpp:333
OMEnameSpaceGroup::getNameSpace
const OMEstring & getNameSpace() const
Definition: OMEnamespace.h:30
Generated: Tue Jul 28 2020 16:03:25
Support Information