FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEobject.h
Go to the documentation of this file.
1 #ifndef _OME_OBJECT_H
2 #define _OME_OBJECT_H "$Id: OMEobject.h 452 2020-07-23 20:19:23Z geoff $"
4 
6 #include <deque>
7 
8 #include <OMEtype.h>
9 #include <OMEclass.h>
11 
16 typedef class OMEthread *OMEthreadP;
17 
18 
22 class OMEobject : public OMEreferenceCount {
23 friend class OMEoidStorageInternal;
24 private:
27 
29  mutable uint64_t totalTicks;
30  mutable uint32_t totalSlices;
31 protected:
32  mutable uint32_t totalInvocations;
33  uint32_t instanceID;
36 public:
39 
40 protected:
41  // allocate, destroy storage for an object
42  explicit OMEobject(OMEclass *classData);
43 
44  virtual ~OMEobject();
45 public:
46 
50  virtual bool isThread() const { return (false); }
51 
52  OME_FAST_CALL void getOIDdata(OMEoidID *idInfo) const;
53 
55  const OMEoid &getDefaultOID();
56 
59  OME_FAST_CALL void setMetaObject(const OMEoid *obj) {
60  delete metaObject;
61  metaObject = (obj == nullptr) ? nullptr : new OMEoid(*obj);
62  }
63 
66  OME_FAST_CALL virtual OMEthread *invokeMethod(int *errRet,
67  const OMEstring &methodName,
68  const uint32_t hashIndx, const OMEoid &objRefData,
69  const uint32_t argc, const OMEarray &argv, const uint32_t signature,
70  const OMEtype *fromObject = nullptr,
71  const OMEthread *fromThread = nullptr,
72  const OMEoid *notify = nullptr,
73  const int inheritanceLevel = -1, const int mustBeAtLevel = -1) = 0;
74 
78  const OMEstring &methodName,
79  const uint32_t hashIndx, const OMEoid &objRefData,
80  const uint32_t argc, const OMEarray &argv, const uint32_t signature,
81  OMEthread *fromThread, // thread gets return result, sleeps
82  const int inheritanceLevel = -1);
83 
86  OME_FAST_CALL void addTickCount(const int64_t tickCount) const OME_ALWAYS_INLINE {
87  atomicIncrement_uint64(&totalTicks, tickCount);
88  atomicIncrement_uint32(&totalSlices, 1);
89  }
90 
95  return (totalTicks);
96  }
97 
100  return (totalSlices);
101  }
102 
105  return (totalInvocations);
106  }
107 }; // end class OMEobject
108 
114 friend class OMEobjectInstance;
115 private:
118  bool permanent;
119 
120  OMEallowEntry(const OMEstring &methodNm, const int level,
121  const bool always = false) : methodName(methodNm) {
122 // methodName = methodNm;
123  invocationLevel = level;
124  permanent = always;
125  }
126 public:
128 }; // end class OMEallowEntry
129 
131 
135 class OMEobjectInstance final : public OMEobject {
136 public:
137  // final method executed in tear-down of object
138  static int Object_delete(OMEthread *);
139 private:
140  void **instanceData;
141  _STD deque<OMEallowEntryP> allowedMethods;
142  _STD deque<OMEthreadP> queuedThreads;
145 
146  // not directly thread-safe, but private so they are only
147  // called by member functions that are thread safe.
148  OME_FAST_CALL bool threadAllowed(OMEthread *thread, const OMEallowEntry *entry = 0);
149 
151 
152  OME_FAST_CALL OMEthread *unblockQueuedThread(const OMEallowEntry *entry = nullptr);
153 protected:
154  // allocate, destroy storage for an object
155  OMEobjectInstance(OMEclass *classData);
156 
158 public:
159  static void defineOMEobjectClass();
160 
161  // remaining are thread safe...
162  OME_FAST_CALL static OMEoid *createObject(OMEclass *objClass,
163  const OMEassoc &acl, const uint32_t argc, const OMEarray &argv,
164  const OMEtype *fromObject = nullptr,
165  const OMEthread *fromThread = nullptr, const OMEoid *notify = nullptr,
166  OMEtype *errInfo = nullptr);
167 
168  OME_FAST_CALL static OMEoid *createObjectOfClass(const uint32_t argc,
169  const OMEarray &argv, const OMEassoc &acl,
170  const OMEstring &name, const OMEtype *fromObject = nullptr,
171  const OMEthread *fromThread = nullptr, const OMEoid *notify = nullptr,
172  const uint32_t verID = 0, const OMEstring *nmSpace = nullptr,
173  OMEtype *errInfo = nullptr);
174 
175  OME_FAST_CALL static OMEoid *createObjectOfClass(const uint32_t argc,
176  const OMEarray &argv, const OMEassoc &acl,
177  const OMEstring &name,
178  const OMEstring &user, const OMEstring &pw,
179  const uint32_t verID = 0, const OMEstring *nmSpace = nullptr);
180 
181  OME_FAST_CALL static OMEoid *importObject(const OMEstring &data, bool duplicate,
182  OMEtype *errInfo = nullptr);
183 
184  OME_FAST_CALL void deleteThisObject(const OMEoid &objRefData,
185  const OMEthread *fromThread); // request deletion
186 
187  OME_FAST_CALL void *getInstanceDataAtLevel(uint_fast16_t lvl) const OME_ALWAYS_INLINE {
188  return (instanceData[lvl]);
189  }
190 
191  OME_FAST_CALL const OMEinvocationData *findRoutine(int *retGraphLevel,
192  const OMEstring &methodName, const uint32_t hashIndx,
193  const uint32_t argc, const OMEarray &argv,
194  const uint32_t signature = 0, const int inheritanceLevel = -1,
195  const int mustBeAtLevel = -1);
196 
197  virtual OME_FAST_CALL OMEthread *invokeMethod(int *errRet, const OMEstring &methodName,
198  const uint32_t hashIndx, const OMEoid &objRefData,
199  const uint32_t argc, const OMEarray &argv,
200  const uint32_t signature = 0,
201  const OMEtype *fromObject = nullptr,
202  const OMEthread *fromThread = nullptr,
203  const OMEoid *notify = nullptr, const int inheritanceLevel = -1,
204  const int mustBeAtLevel = -1) override;
205 
206  OME_FAST_CALL int sendMessage(const OMEstring &methodName, const OMEarray &argv,
207  OMEoid &destObj);
208 
209  OME_FAST_CALL void noteThreadTerminated(class OMEthread *, bool modified,
210  uint32_t exitStatus, bool wasPreemptable);
211 
213 
214  OME_FAST_CALL uint_fast16_t listAllowedMethods(OMEarray &result) const;
215 
216  OME_FAST_CALL void allowMethod(const OMEthread *thread, const OMEstring &methodName,
217  const OMEstring &className, const bool always = false);
218 
219  OME_FAST_CALL void allowMethod(const OMEstring &methodName,
220  const OMEstring &className, const bool always = false);
221 
222  OME_FAST_CALL void allowMethod(const OMEstring &methodName, const int level = -1,
223  const bool always = false);
224 
225 }; // end class OMEobjectInstance
226 
227 
230 #endif
231 /* vim: set expandtab shiftwidth=4 tabstop=4: */
OMEobject::defaultOID
OMEoid * defaultOID
Definition: OMEobject.h:28
OMEcallStack::thisMethod
OMEtype thisMethod
Definition: OMEthread.h:36
OMEencodeBuffer::condenseIntoString
OMEstring * condenseIntoString(bool includeVersionID)
Serialize all OMEencodeBufferElement items into a single string.
Definition: OMEencode.cpp:75
l
Ïúíþ ð Ø ˜ ˜ __text __TEXT € __apple_names __DWARF __apple_objc __DWARF __apple_namespac__DWARF H X __apple_types __DWARF l
Definition: tmp3.o.cpp:1
OMEthread::sendMessage
OME_FAST_CALL int sendMessage(const OMEstring &methodName, const uint32_t hashIndx, const uint32_t argc, const OMEarray &argv, const OMEtype &destObj, const OMEtype *fromObj=nullptr) const
Definition: OMEthread.cpp:470
OMEdebugThreadDelete
#define OMEdebugThreadDelete
Definition: OMEdebugInfo.h:21
OMEterminateThreadsOnObject
int OMEterminateThreadsOnObject(const OMEobject *obj)
Definition: OMEexecQueue.cpp:591
OMEobjectInstance::invokeMethod
virtual OME_FAST_CALL OMEthread * invokeMethod(int *errRet, const OMEstring &methodName, const uint32_t hashIndx, const OMEoid &objRefData, const uint32_t argc, const OMEarray &argv, const uint32_t signature=0, const OMEtype *fromObject=nullptr, const OMEthread *fromThread=nullptr, const OMEoid *notify=nullptr, const int inheritanceLevel=-1, const int mustBeAtLevel=-1) override
Invoke method on an object.
Definition: OMEobject.cpp:610
OME_DELETE_OBJECT
#define OME_DELETE_OBJECT(ptr)
Definition: OMEmanifests.h:159
OME_ERROR_DUPLICATE_OBJECT
#define OME_ERROR_DUPLICATE_OBJECT
Definition: OMEerror.h:20
OMEclass::inheritListTotal
uint_fast16_t inheritListTotal() const
Definition: OMEclass.h:111
OMEoid::getObjectACL
const OMEassoc & getObjectACL() const
Definition: OMEoid.h:285
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
OME_CRITICAL_SECTION_OID_REFERENCE
@ OME_CRITICAL_SECTION_OID_REFERENCE
Definition: OMEmutex.h:42
OMEdebugFlag
SMV_StandaloneNumeric< uint32_t > OMEdebugFlag("debugFlag")
OMEinvocationData::function
NativeMethodFP function
Definition: OMEmethod.h:49
OMEoid::setProxyObject
void setProxyObject(const OMEoid &proxy, const OMEstring &method)
Set object Id of meta/proxy object.
Definition: OMEoid.h:275
OMEcallStack::invocationLevel
int invocationLevel
Definition: OMEthread.h:35
OMEobjectInstance::totalThreadCount
uint32_t totalThreadCount
Definition: OMEobject.h:144
OMEclass::listMethodInfo
OME_FAST_CALL int listMethodInfo(OMEassoc &result) const
Definition: OMEclass.cpp:333
OMEfunctions.h
OME utility functions.
OMEstartCriticalSection
void OMEstartCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:217
OMEthread::returnReply
OME_FAST_CALL int returnReply(const OMEtype &result)
Definition: OMEthread.cpp:730
OMEobjectInstance::findRoutine
const OME_FAST_CALL OMEinvocationData * findRoutine(int *retGraphLevel, const OMEstring &methodName, const uint32_t hashIndx, const uint32_t argc, const OMEarray &argv, const uint32_t signature=0, const int inheritanceLevel=-1, const int mustBeAtLevel=-1)
Locate a method implementation.
Definition: OMEobject.cpp:542
OMEobjectInstance::activeThreadCount
uint32_t activeThreadCount
Definition: OMEobject.h:143
OMEthread::getThisObject
const OMEtype & getThisObject() const OME_ALWAYS_INLINE
Definition: OMEthread.h:152
OME_INVOKE_TRIVIAL_NATIVE
#define OME_INVOKE_TRIVIAL_NATIVE
Definition: OMEmethod.h:14
OMEthread::getThreadState
OMEthreadStates getThreadState() const OME_ALWAYS_INLINE
Definition: OMEthread.h:119
OME_THREAD_TERMINATED
@ OME_THREAD_TERMINATED
thread is terminated
Definition: OMEthread.h:23
OMEassoc
Implements associative array of OMEtype elements.
Definition: OMEassoc.h:112
OMEthread::getThisOID
const OMEoid & getThisOID() const OME_ALWAYS_INLINE
Definition: OMEthread.h:154
OMEobjectInstance::queuedThreads
_STD deque< OMEthreadP > queuedThreads
Definition: OMEobject.h:142
OMEstring
Implements text and binary string storage.
Definition: OMEstring.h:305
OMEencode.h
OME type encoding routines.
OMEclass::findMethodImplementation
OME_FAST_CALL OMEinvocationData * findMethodImplementation(const uint32_t signature, const OMEstring &methodName, const uint32_t indx=0) const
Definition: OMEclass.cpp:321
OMEencodeBuffer
Buffer into which OMEtype data is encoded.
Definition: OMEencode.h:54
OMEclass::setStorageDescription
int setStorageDescription(const struct OMEinstanceVarDescr *desc)
Definition: OMEclass.cpp:224
OMEcheckACL
bool OMEcheckACL(const OMEassoc &acl, const OMEstring &methodName, const OMEthread *threadData)
Definition: OMEobjACL.cpp:173
OMEarray::indexExists
bool indexExists(const uint32_t i) const
Definition: OMEarray.h:202
OME_CRITICAL_SECTION_METHOD_INVOKE
@ OME_CRITICAL_SECTION_METHOD_INVOKE
Definition: OMEmutex.h:40
OMEtype::value
union OMEtype::@26 value
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
OMEobject
Base class and abstract interface for an object within a FARGOS/VISTA Object Management Environment.
Definition: OMEobject.h:22
OMEobjectInstance::Object_delete
static int Object_delete(OMEthread *)
Definition: OMEobject.cpp:215
OMEmethodDefinition::className
const char * className
Definition: OMEnamespace.h:88
OMEclass::createInstanceData
void * createInstanceData()
Allocate and initialize storage for instance variables.
Definition: OMEclass.cpp:113
OMEshareConstant
const OMEstring & OMEshareConstant(const OMEstring &stringConstant)
Definition: OMEnamespace.cpp:338
OMEtype::oid
class OMEoid * oid
Definition: OMEbaseType.h:297
OMEstringInROM
const typedef void * OMEstringInROM
Points to immovable, read-only string data.
Definition: OMEstring.h:68
OMEallowEntry::methodName
OMEstring methodName
Definition: OMEobject.h:116
OMEdebugMethodInvocations
#define OMEdebugMethodInvocations
Definition: OMEdebugInfo.h:18
OMEclass::importInstanceData
OME_FAST_CALL int importInstanceData(void *iData, const OMEtype &data) const
Definition: OMEclass.cpp:691
OMEtype::s
class OMEstring * s
Definition: OMEbaseType.h:299
OMEobject::addOIDref
OME_FAST_CALL void addOIDref(OMEoidStorageInternal *ref)
Definition: OMEobject.cpp:123
OMEoidID::classVersionID
uint32_t classVersionID
Definition: OMEoid.h:29
OMEobjACL.h
OMEcallStack::argv
OMEtype argv
Definition: OMEthread.h:38
OMEarray::outputOnStream
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OME_DEFAULT_COMPLEX_OUTPUT_MODE) const
Output an OMEarray to an output stream.
Definition: OMEarray.h:275
OMEcore.h
OMEtype::i
int32_t i
Definition: OMEbaseType.h:285
OMEobject::oidReferences
OMEoidStorageInternal * oidReferences
Definition: OMEobject.h:35
OMEinstanceVarDescr
Meta data record to describe an instance variable of a class.
Definition: OMEnamespace.h:76
OMEthread::releaseThread
OMEthread * releaseThread()
Definition: OMEthread.cpp:1126
OMEobject::instanceID
uint32_t instanceID
Definition: OMEobject.h:33
OMEobjectInstance::sendMessage
OME_FAST_CALL int sendMessage(const OMEstring &methodName, const OMEarray &argv, OMEoid &destObj)
OMEobject::addTickCount
OME_FAST_CALL void addTickCount(const int64_t tickCount) const OME_ALWAYS_INLINE
Add tick counts to per-object statistics.
Definition: OMEobject.h:86
OMEthread::outputOnStream
void outputOnStream(std::ostream &o=std::cout) const
Definition: OMEthread.cpp:1172
OMEthread::sourceFileName
const char * sourceFileName
Definition: OMEthread.h:84
OMEclass
FARGOS/VISTA Object Management Environment class description.
Definition: OMEclass.h:24
OMEclass::deleteInstanceData
void deleteInstanceData(void *iData)
Delete instance variable storage.
Definition: OMEclass.cpp:128
OMEthread::suspendThread
void suspendThread()
Definition: OMEthread.cpp:1086
OMEobjectInstance::noteThreadTerminated
OME_FAST_CALL void noteThreadTerminated(class OMEthread *, bool modified, uint32_t exitStatus, bool wasPreemptable)
Definition: OMEobject.cpp:763
OMEmethodDefinition
Define method implementation.
Definition: OMEnamespace.h:86
OMEmethodDefinition::nameSpace
const char * nameSpace
Definition: OMEnamespace.h:87
OMEclass::resolveLinkages
int resolveLinkages(OMEstring *missingClassName=nullptr, uint32_t *missingClassVersionID=nullptr)
Attempt to resolve inheritance tree.
Definition: OMEclass.cpp:428
OMEreferenceCount
Base class for reference-counted data.
Definition: OMErefCount.h:31
OMEobject::getDefaultOID
const OMEoid & getDefaultOID()
Returns read-only reference to object's default object Id.
Definition: OMEobject.cpp:113
OMEfindClassDescription
OMEclass * OMEfindClassDescription(const OMEstring &className, const uint32_t verID, const OMEstring *nmSpace)
Definition: OMEnamespace.cpp:165
OMEcallStack::argc
OMEtype argc
Definition: OMEthread.h:37
emptyArray
const OMEarray emptyArray
Definition: OMEobject.cpp:30
OMEmethodDefinition::signature
uint32_t signature
Definition: OMEnamespace.h:91
OMEentityID
Identifies an instance of an OME process.
Definition: OMEprocInfo.h:19
OME_ERROR_NO_SUCH_METHOD
#define OME_ERROR_NO_SUCH_METHOD
Definition: OMEerror.h:17
OMEclass::hashIndex
uint32_t hashIndex
OMEhash(className)
Definition: OMEclass.h:57
OMEobject::setMetaObject
OME_FAST_CALL void setMetaObject(const OMEoid *obj)
Attach an meta object to the object.
Definition: OMEobject.h:59
OMEobjectInstance::allowMethod
OME_FAST_CALL void allowMethod(const OMEthread *thread, const OMEstring &methodName, const OMEstring &className, const bool always=false)
Allow a method to be invoked while another method is active.
Definition: OMEobject.cpp:833
WITH_DATE_TIME_LEVEL
#define WITH_DATE_TIME_LEVEL
log as $date_time $log_level $msg
Definition: logging_api.hpp:2877
OMEobject.h
OMEmethodDefinition::data
void * data
Definition: OMEnamespace.h:97
srcID
const char srcID[]
Definition: catSym.c:17
OME_STRING
@ OME_STRING
Definition: OMEmanifests.h:85
OMEobject::invokeMethodAndWaitForReply
OME_FAST_CALL OMEthread * invokeMethodAndWaitForReply(int *errRet, const OMEstring &methodName, const uint32_t hashIndx, const OMEoid &objRefData, const uint32_t argc, const OMEarray &argv, const uint32_t signature, OMEthread *fromThread, const int inheritanceLevel=-1)
Perform RPC-style method invocation against an object.
Definition: OMEobject.cpp:156
OMEdebugLogLevel3
#define OMEdebugLogLevel3
Definition: OMEdebugInfo.h:35
OMEobjectInstance::allowedMethods
_STD deque< OMEallowEntryP > allowedMethods
Definition: OMEobject.h:141
OMEclass::extractInstanceData
OME_FAST_CALL OMEtype * extractInstanceData(const void *iData, bool annotate) const
Definition: OMEclass.cpp:617
OMEallowEntry::~OMEallowEntry
~OMEallowEntry()
Definition: OMEobject.h:127
OMEthread::generateException
OME_FAST_CALL int generateException(uint_fast32_t argc, const OMEarray &argv) const
Definition: OMEthread.cpp:1197
INIT_DECLARE_OMEobject
OME_DLL_EXPORT void INIT_DECLARE_OMEobject()
Definition: OMEobject.cpp:1355
OMEset
Implements an ordered list of OMEtype elements.
Definition: OMEset.h:64
OMEobjectInstance::unblockNextThread
OMEthread * unblockNextThread()
Definition: OMEobject.cpp:925
OMEthread::sourceLineNumber
int sourceLineNumber
Definition: OMEthread.h:83
OMEmillisecondsSinceBoot
int64_t OMEmillisecondsSinceBoot()
Obtain the number of milliseconds since boot of local FARGOS/VISTA Object Management Environment proc...
Definition: OMEprocInfo.cpp:93
OMEdebugIncludeArguments
#define OMEdebugIncludeArguments
Definition: OMEdebugInfo.h:22
OMEobjectInstance::dropActiveThreadReference
void dropActiveThreadReference()
Definition: OMEobject.cpp:793
OMEthread.h
OMEallowEntry::invocationLevel
int invocationLevel
Definition: OMEobject.h:117
OMEobjectInstance::~OMEobjectInstance
~OMEobjectInstance()
Definition: OMEobject.cpp:515
OMEoidStorage::convertExternalReferences
static int convertExternalReferences(const OMEoidID *id, class OMEobject *o)
Definition: OMEoidIntStub.cpp:108
OMEclass.h
OME_EXPECT_TRUE
#define OME_EXPECT_TRUE(expr)
Annotation macro for conditional expression expected to be true.
Definition: compiler_hints.h:541
OMEobjectInstance::instanceData
void ** instanceData
Definition: OMEobject.h:140
OMEthread::getReplyOID
const OMEtype & getReplyOID()
Definition: OMEthread.h:125
OMEclass::getSearchOrder
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
@ OME_OID
Definition: OMEmanifests.h:84
OMEdebugAlways
#define OMEdebugAlways
Definition: OMEdebugInfo.h:39
OMEobject::getOIDdata
OME_FAST_CALL void getOIDdata(OMEoidID *idInfo) const
Definition: OMEobject.cpp:105
EMIT_CONDITIONAL_MESSAGE
#define EMIT_CONDITIONAL_MESSAGE(lvl)
Create LogMessageRecord context for content that will be emitted to the default log manager only if e...
Definition: logging_api.hpp:2816
OMEdefineNewMethod
int OMEdefineNewMethod(const OMEmethodDefinition &definitionRecord)
Definition: OMEnamespace.cpp:248
OMEobject::classInfo
const OMEclass * classInfo
Pointer to class description.
Definition: OMEobject.h:37
OMEobject::totalSlices
uint32_t totalSlices
Definition: OMEobject.h:30
OMEthread::callStack
OMEcallStack * callStack
Definition: OMEthread.h:74
OMEclass::getNameSpaceName
const OMEstring & getNameSpaceName() const
Definition: OMEclass.cpp:249
OMEexecQueue.h
OMEobjectInstance::importObject
static OME_FAST_CALL OMEoid * importObject(const OMEstring &data, bool duplicate, OMEtype *errInfo=nullptr)
Import an object from its encoded image.
Definition: OMEobject.cpp:1010
OMEobject::metaObject
OMEoid * metaObject
Pointer to meta-object.
Definition: OMEobject.h:38
OMEoidStorageInternal
Interface to an internal OME object.
Definition: OMEoid.h:324
OMEallowEntryP
OMEallowEntry * OMEallowEntryP
Definition: OMEobject.h:130
OMEtype.h
OME fundamental type implementation.
NOTE_DEFAULT_NLM
#define NOTE_DEFAULT_NLM(s)
Declare the default message within a DEFINE_NLM_MESSAGE() block.
Definition: OMEdebugInfo.h:314
OMEoid::getObjectOID
void getObjectOID(OMEoidID *result) const
Definition: OMEoid.h:290
OMEclass::getVariableDescriptions
const OMEarray & getVariableDescriptions() const
Definition: OMEclass.cpp:238
OMEerror.h
OME error codes.
OMEclass::getClassAtLevel
OME_FAST_CALL OMEclass * getClassAtLevel(uint_fast16_t level) const
Definition: OMEclass.cpp:184
OMEtype::ui
uint32_t ui
Definition: OMEbaseType.h:286
OMEobject::isThread
virtual bool isThread() const
Returns a Boolean indicating if the object is representing a thread.
Definition: OMEobject.h:50
OMEobjectInstance::listAllowedMethods
OME_FAST_CALL uint_fast16_t listAllowedMethods(OMEarray &result) const
Definition: OMEobject.cpp:937
DEFINE_NLM_MESSAGE
#define DEFINE_NLM_MESSAGE(Lvl, MessID, AppName)
Define an Native Language Message.
Definition: OMEdebugInfo.h:318
OMEcurrentProcessInfo
OMEthisProcessInfo OMEcurrentProcessInfo
Automatic instantiation of OMEthisProcessInfo. When properly linked, the C++ static constructor mecha...
Definition: OMEprocInfo.cpp:217
OME_USED
const char srcID[] OME_USED
Definition: tick_time.cpp:24
OMEoidID::classHashIndex
uint32_t classHashIndex
Definition: OMEoid.h:30
OMEclass::resolved
bool resolved() const
Definition: OMEclass.h:107
OMEobjectInstance
Subclass of OMEobject that provides access to a local object.
Definition: OMEobject.h:135
OMEobject::getTickCount
OME_FAST_CALL int64_t getTickCount() const OME_ALWAYS_INLINE
Return number of elapsed time in ticks spent executing object's methods.
Definition: OMEobject.h:94
OMEobject::~OMEobject
virtual ~OMEobject()
Definition: OMEobject.cpp:69
OMEobjectInstance::threadAllowed
OME_FAST_CALL bool threadAllowed(OMEthread *thread, const OMEallowEntry *entry=0)
Definition: OMEobject.cpp:957
OMEarray::elementCount
uint_fast32_t elementCount() const OME_ALWAYS_INLINE
Definition: OMEarray.h:247
OMEclass::versionID
uint32_t versionID
Definition: OMEclass.h:56
OMEclass::className
OMEstring className
Definition: OMEclass.h:55
OMEoidID::birthplace
OMEentityID birthplace
Definition: OMEoid.h:31
OILsetExternalMetaObject
int OILsetExternalMetaObject(OMEthread *thread, OMEtype &result, const OMEtype &meta, const OMEtype &method, const OMEtype &target)
Definition: OMEobject.cpp:1336
OME_SET
@ OME_SET
Definition: OMEmanifests.h:89
NEXT_NLM_PARAM
#define NEXT_NLM_PARAM
Define value for next positional parameter.
Definition: OMEdebugInfo.h:337
atomic_values.h
Atomic operations.
OMEobject::getSliceCount
OME_FAST_CALL uint32_t getSliceCount() const OME_ALWAYS_INLINE
Return number of time slices allocated to object's methods.
Definition: OMEobject.h:99
OMEthisProcessInfo::id
OMEentityID id
Definition: OMEprocInfo.h:68
OMEobjectInstance::deleteThisObject
OME_FAST_CALL void deleteThisObject(const OMEoid &objRefData, const OMEthread *fromThread)
Request deletion of an object.
Definition: OMEobject.cpp:1321
OMEendCriticalSection
void OMEendCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:236
OMEobject::removeOIDref
OME_FAST_CALL void removeOIDref(OMEoidStorageInternal *ref)
Definition: OMEobject.cpp:131
OME_EXPECT_FALSE
#define OME_EXPECT_FALSE(expr)
Annotation macro for conditional expression expected to be false.
Definition: compiler_hints.h:540
OME_ALWAYS_INLINE
#define OME_ALWAYS_INLINE
Tell the compiler to alway inline a function, regardless of optimization level.
Definition: compiler_hints.h:364
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
OMEobjectInstance::createObjectOfClass
static OME_FAST_CALL OMEoid * createObjectOfClass(const uint32_t argc, const OMEarray &argv, const OMEassoc &acl, const OMEstring &name, const OMEtype *fromObject=nullptr, const OMEthread *fromThread=nullptr, const OMEoid *notify=nullptr, const uint32_t verID=0, const OMEstring *nmSpace=nullptr, OMEtype *errInfo=nullptr)
Create an object, potentially searching through the OMEnameSpaceGroup list for most current version o...
Definition: OMEobject.cpp:1250
OMEclass::getNextInstanceID
uint_fast32_t getNextInstanceID()
Definition: OMEclass.h:118
OME_FAST_CALL
#define OME_FAST_CALL
Definition: compiler_hints.h:468
OMEobjectInstance::defineOMEobjectClass
static void defineOMEobjectClass()
Definition: OMEobject.cpp:481
OMEmethodSignature
OME_DLL_EXPORT uint32_t OMEmethodSignature(const int argc, const uint32_t types[], uint32_t *anyMask=nullptr)
Compute 32-bit signature of a method's arguments.
Definition: OMEsignature.cpp:15
OMEoidStorageInternal::noteReferencedObjectDeleted
void noteReferencedObjectDeleted(OMEoidID *entity)
Definition: OMEoidInt.cpp:50
_STD
#define _STD
Definition: OMEmanifests.h:146
OMEallowEntry::OMEallowEntry
OMEallowEntry(const OMEstring &methodNm, const int level, const bool always=false)
Definition: OMEobject.h:120
OMEdebugInfo.h
OME debug and profiling interfaces.
OMEoid::isExternal
bool isExternal() const OME_ALWAYS_INLINE
Definition: OMEoid.h:300
OMEobjectInstance::createObject
static OME_FAST_CALL OMEoid * createObject(OMEclass *objClass, const OMEassoc &acl, const uint32_t argc, const OMEarray &argv, const OMEtype *fromObject=nullptr, const OMEthread *fromThread=nullptr, const OMEoid *notify=nullptr, OMEtype *errInfo=nullptr)
Create an object within the local FARGOS/VISTA Object Managment Environment.
Definition: OMEobject.cpp:1170
OMEobject::invokeMethod
virtual OME_FAST_CALL OMEthread * invokeMethod(int *errRet, const OMEstring &methodName, const uint32_t hashIndx, const OMEoid &objRefData, const uint32_t argc, const OMEarray &argv, const uint32_t signature, const OMEtype *fromObject=nullptr, const OMEthread *fromThread=nullptr, const OMEoid *notify=nullptr, const int inheritanceLevel=-1, const int mustBeAtLevel=-1)=0
Invoke method against an object.
OME_DLL_EXPORT
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
OMEarray
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
OMEreferenceCount::dropReference
int_fast32_t dropReference()
Definition: OMErefCount.cpp:144
OMEnamespace.h
OMEthread
Public interface to an OME thread.
Definition: OMEthread.h:60
LOG_ENDLINE
#define LOG_ENDLINE
Closing clause for text line output using << operators.
Definition: logging_api.hpp:2956
OMEoid
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
OME_ANY
@ OME_ANY
Definition: OMEmanifests.h:93
OMEallowEntry
Record to track methods that can be invoked upon an object.
Definition: OMEobject.h:113
OMEthread::dropThisObjectReference
void dropThisObjectReference() OME_ALWAYS_INLINE
Definition: OMEthread.h:159
OMEthread::getInstanceData
OME_FAST_CALL void * getInstanceData() const
Definition: OMEthread.cpp:1036
OMEtype::type
uint32_t type
Definition: OMEbaseType.h:304
OMEobjectInstance::unblockQueuedThread
OME_FAST_CALL OMEthread * unblockQueuedThread(const OMEallowEntry *entry=nullptr)
Definition: OMEobject.cpp:906
OME_ERROR_NOT_AUTHORIZED
#define OME_ERROR_NOT_AUTHORIZED
Definition: OMEerror.h:18
OMEdebugLogLevel2
#define OMEdebugLogLevel2
Definition: OMEdebugInfo.h:34
OMEobjectInstance::OMEobjectInstance
OMEobjectInstance(OMEclass *classData)
Definition: OMEobject.cpp:498
OMEoidID::instanceIndex
uint32_t instanceIndex
Definition: OMEoid.h:28
OME_CORE_CALL
#define OME_CORE_CALL
Definition: compiler_hints.h:472
OME_ARRAY
@ OME_ARRAY
Definition: OMEmanifests.h:86
OME_ERROR_BAD_DATA
#define OME_ERROR_BAD_DATA
Definition: OMEerror.h:21
OMEtype::assoc
class OMEassoc * assoc
Definition: OMEbaseType.h:296
OMEobject::getInvocationCount
OME_FAST_CALL uint32_t getInvocationCount() const OME_ALWAYS_INLINE
Return number of methods invoked against object.
Definition: OMEobject.h:104
AND_OUTPUT_NLM
#define AND_OUTPUT_NLM(o, t)
Render NLM data to an output stream.
Definition: OMEdebugInfo.h:327
OMEallowEntry::permanent
bool permanent
Definition: OMEobject.h:118
OMEthreadP
class OMEthread * OMEthreadP
Definition: OMEobject.h:16
OMEthread::getUserID
const OMEtype & getUserID() const OME_ALWAYS_INLINE
Definition: OMEthread.h:146
OMEobject::OMEobject
OMEobject(OMEclass *classData)
Definition: OMEobject.cpp:56
OMEinvocationData::code
union OMEinvocationData::@30 code
OMEdebugBlockedInvocations
#define OMEdebugBlockedInvocations
Definition: OMEdebugInfo.h:25
OMEoidID
Fundamental elements of an OME object identifier.
Definition: OMEoid.h:27
OME_INVOKE_OIL2_NATIVE
#define OME_INVOKE_OIL2_NATIVE
Definition: OMEmethod.h:12
OMEoid::getInstanceInMemory
const class OMEobject * getInstanceInMemory() const
Return object information record.
Definition: OMEoid.h:280
OME_ASSOC
@ OME_ASSOC
Definition: OMEmanifests.h:87
OMEoidStorageInternal::nextRefToSameObject
OMEoidStorageInternal * nextRefToSameObject
Definition: OMEoid.h:334
OMEobject::totalInvocations
uint32_t totalInvocations
Definition: OMEobject.h:32
OMEobject::totalTicks
uint64_t totalTicks
Definition: OMEobject.h:29
OMEobject::entityID
OMEentityID * entityID
Definition: OMEobject.h:34
OMEthread::noteObjectModified
void noteObjectModified() OME_ALWAYS_INLINE
Definition: OMEthread.h:191
OMEobjectInstance::getInstanceDataAtLevel
OME_FAST_CALL void * getInstanceDataAtLevel(uint_fast16_t lvl) const OME_ALWAYS_INLINE
Return pointer to instance variables.
Definition: OMEobject.h:187
LOG_CERR
#define LOG_CERR(lvl)
Convenience macro that uses LOG_INTO() to conditionally log a message to standard error.
Definition: logging_api.hpp:3014
logging_api.hpp
FARGOS Logging API.
AND_ASSIGN_INTO
#define AND_ASSIGN_INTO(v)
Store an NLM into an OMEtype variable.
Definition: OMEdebugInfo.h:332
Generated: Fri Jul 31 2020 18:19:15
Support Information