Go to the documentation of this file.
2 #define _OME_THREAD_H "$Id: OMEthread.h 453 2020-07-23 20:20:44Z geoff $"
46 int level,
const OMEstring &methodNm,
const uint32_t srcArgc,
90 const OMEstring &methodName,
const uint32_t srcArgc,
93 const OMEoid *notifyObj =
nullptr);
105 virtual bool isThread()
const override {
return (
true); }
133 const uint32_t hashIndx,
const OMEoid &objRefData,
134 const uint32_t argc,
const OMEarray &argv,
const uint32_t signature,
137 const OMEoid *notify =
nullptr,
const int inheritanceLevel = -1,
138 const int mustBeAtLevel = -1)
override;
141 const OMEstring &methodName,
const int srcArgc,
220 const uint32_t hashIndx,
221 const uint32_t argc,
const OMEarray &argv,
223 const OMEtype *fromObj =
nullptr)
const;
227 const uint32_t hashIndx,
const OMEtype &argv,
232 const uint32_t hashIndx,
234 const OMEtype &fromObj,
const int32_t timeout);
237 const uint32_t hashIndx,
const uint32_t argc,
241 const uint32_t hashIndx,
const OMEtype &argSet);
305 function = (
void *) f;
312 function = (
void *) f;
319 function = (
void *) f;
326 function = (
void *) f;
333 function = (
void *) f;
340 function = (
void *) f;
347 function = (
void *) f;
354 function = (
void *) f;
361 function = (
void *) f;
OMEoid * defaultOID
Definition: OMEobject.h:28
OMEcallStack * next
Definition: OMEthread.h:43
OMEassoc * OMEmakeACL(const OMEstring &entity, uint_fast32_t defaultPermission, const OMEassoc &methodList)
Definition: OMEobjACL.cpp:164
OMEtype threadContext
Definition: OMEthread.h:77
uint32_t getMethodType() const OME_ALWAYS_INLINE
Definition: OMEthread.h:212
void doAbort()
Definition: OMEthread.cpp:588
void * threadStack
Definition: OMEthread.h:41
virtual bool isThread() const override
Returns a Boolean indicating if the object is representing a thread.
Definition: OMEthread.h:105
OMEtype thisMethod
Definition: OMEthread.h:36
static const OME_FAST_CALL OMEdefOIL2func * findFunction(const OMEstring &fName)
Definition: copyIntrp.cpp:64
@ OME_THREAD_SUSPEND
thread is suspended
Definition: OMEthread.h:20
void dropThisObjectReference()
Definition: OMEthread.cpp:264
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
@ OME_THREAD_RUNNING
thread is active
Definition: OMEthread.h:21
#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
const OMEassoc & getObjectACL() const
Definition: OMEoid.h:285
void noteThreadPriority(int p) OME_ALWAYS_INLINE
Definition: OMEthread.h:121
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
OMEdefOIL2func(const char *funcName, sixFP f, int args)
Definition: OMEthread.h:345
const char s[]
Definition: t.cpp:4
SMV_StandaloneNumeric< uint32_t > OMEdebugFlag("debugFlag")
NativeMethodFP function
Definition: OMEmethod.h:49
bool OMEokToAssignTypes(uint32_t srcType, uint32_t targetType, OMEthread *t)
Definition: OMEthread.cpp:1260
#define ARG_IS_INT(x)
Definition: OMEthread.cpp:14
void setProxyObject(const OMEoid &proxy, const OMEstring &method)
Set object Id of meta/proxy object.
Definition: OMEoid.h:275
int invocationLevel
Definition: OMEthread.h:35
Statistics record to track amount of time used by an OMEthread.
Definition: OMEthreadCntrl.h:118
virtual void executeSlice()=0
Execute a time slice for an active thread.
OMEdefOIL2func(const char *funcName, zeroFP f, int args)
Definition: OMEthread.h:303
OME_FAST_CALL int returnReply(const OMEtype &result)
Definition: OMEthread.cpp:730
const class OMEoid * getProxyObject(const OMEstring **method) const
Get object Id of meta/proxy object.
Definition: OMEoid.h:270
void yieldSlice()
Definition: OMEthread.cpp:1112
OME object identifier implementation.
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
uint32_t invocationMode
Definition: OMEmethod.h:47
bool modifiedObject
Definition: OMEthread.h:68
const OMEtype & getThisObject() const OME_ALWAYS_INLINE
Definition: OMEthread.h:152
#define OME_INVOKE_TRIVIAL_NATIVE
Definition: OMEmethod.h:14
OME_CORE_CALL int(* oneFP)(OMEthread *, OMEtype &, const OMEtype &)
Definition: OMEthread.h:256
OMEthreadStates getThreadState() const OME_ALWAYS_INLINE
Definition: OMEthread.h:119
@ OME_THREAD_TERMINATED
thread is terminated
Definition: OMEthread.h:23
OME_FAST_CALL int callMethodWithSetArgument(const OMEtype &methodName, const uint32_t hashIndx, const OMEtype &argSet)
Definition: OMEthread.cpp:678
bool validReferenceToObject()
Definition: OMEthread.h:55
void createReplyOID()
Definition: OMEthread.cpp:328
Implements associative array of OMEtype elements.
Definition: OMEassoc.h:112
const OMEoid & getThisOID() const OME_ALWAYS_INLINE
Definition: OMEthread.h:154
#define INCREMENT_COUNTER32_BY(v, amt)
Definition: OMEthread.cpp:17
OMEoid * notifyWhenDead
Definition: OMEthread.h:66
Implements text and binary string storage.
Definition: OMEstring.h:305
virtual ~OMEthread()
Definition: OMEthread.cpp:409
OMEtype & OILnextIterator(int *rc, OMEtype &setVar)
Definition: OMEthread.cpp:1243
bool OMEcheckACL(const OMEassoc &acl, const OMEstring &methodName, const OMEthread *threadData)
Definition: OMEobjACL.cpp:173
bool validReferenceToObject() OME_ALWAYS_INLINE
Definition: OMEthread.h:161
void stopInterval()
Definition: OMEthreadCntrl.h:135
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
void noteLineNumber(int line, const char *fileName=nullptr) OME_ALWAYS_INLINE
Definition: OMEthread.h:193
OME_CORE_CALL int(* twoFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:258
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
Base class and abstract interface for an object within a FARGOS/VISTA Object Management Environment.
Definition: OMEobject.h:22
int oidIsExternal(OMEthread *thread, OMEtype &result, const OMEtype &obj)
Definition: OMEthread.cpp:70
uint32_t getPC() const OME_ALWAYS_INLINE
Definition: OMEthread.h:169
void startInterval() OME_ALWAYS_INLINE
Definition: OMEthreadCntrl.h:129
OME_CORE_CALL int(* eightFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:278
#define OMEdebugExceptions
Definition: OMEdebugInfo.h:24
OME_CORE_CALL int(* fourFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:264
const OMEstring & OMEshareConstant(const OMEstring &stringConstant)
Definition: OMEnamespace.cpp:338
class OMEoid * oid
Definition: OMEbaseType.h:297
const typedef void * OMEstringInROM
Points to immovable, read-only string data.
Definition: OMEstring.h:68
#define OMEdebugMethodInvocations
Definition: OMEdebugInfo.h:18
#define LOG_COUT(lvl)
Convenience macro that uses LOG_INTO() to conditionally log a message to standard output.
Definition: logging_api.hpp:3007
class OMEstring * s
Definition: OMEbaseType.h:299
int registerService(OMEthread *thread, OMEtype &result, const OMEtype &name, const OMEtype &obj, const OMEtype &flag)
Definition: OMEthread.cpp:118
OMEtype argv
Definition: OMEthread.h:38
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
OMEdefOIL2func * next
Definition: OMEthread.h:290
OME_CORE_CALL int(* threeFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:261
OME_CORE_CALL int(* NativeMethodFP)(class OMEthread *)
Typedef of a native method.
Definition: OMEmethod.h:20
int32_t i
Definition: OMEbaseType.h:285
class OMEarray * array
Definition: OMEbaseType.h:294
OMEthread * releaseThread()
Definition: OMEthread.cpp:1126
uint32_t instanceID
Definition: OMEobject.h:33
void outputOnStream(std::ostream &o=std::cout) const
Definition: OMEthread.cpp:1172
const char * sourceFileName
Definition: OMEthread.h:84
void exitRoutine()
Definition: OMEthread.cpp:1004
#define OME_INVOKE_OIL2_INTERPRET
Definition: OMEmethod.h:11
OMEstring functionName
Definition: OMEthread.h:299
FARGOS/VISTA Object Management Environment class description.
Definition: OMEclass.h:24
void suspendThread()
Definition: OMEthread.cpp:1086
OME_FAST_CALL void noteThreadTerminated(class OMEthread *, bool modified, uint32_t exitStatus, bool wasPreemptable)
Definition: OMEobject.cpp:763
OME_CORE_CALL int(* zeroFP)(OMEthread *, OMEtype &)
Definition: OMEthread.h:254
virtual void suspendThread()=0
Suspend an active thread.
Define method implementation.
Definition: OMEnamespace.h:86
int resolveLinkages(OMEstring *missingClassName=nullptr, uint32_t *missingClassVersionID=nullptr)
Attempt to resolve inheritance tree.
Definition: OMEclass.cpp:428
uint32_t stackLength
Definition: OMEthread.h:42
uint32_t stackPointer
Definition: OMEthread.h:40
@ OME_THREAD_KILLED
thread has been killed
Definition: OMEthread.h:22
OME_CORE_CALL int(* atLeastOneFP)(OMEthread *, OMEtype &, const OMEtype &,...)
Definition: OMEthread.h:282
bool replyStillPending() const OME_ALWAYS_INLINE
Definition: OMEthread.h:113
void noteThreadState(const OMEthreadStates s) OME_ALWAYS_INLINE
Definition: OMEthread.h:117
const OMEoid & getDefaultOID()
Returns read-only reference to object's default object Id.
Definition: OMEobject.cpp:113
OMEtype argc
Definition: OMEthread.h:37
OMEtype replyResult
Definition: OMEthread.h:79
uint32_t signature
Definition: OMEnamespace.h:91
static uint32_t typesAreAssignable(uint32_t srcType, uint32_t targetType) OME_CONST_FUNCTION
Definition: OMEbaseType.h:114
#define OME_ERROR_NO_SUCH_METHOD
Definition: OMEerror.h:17
uint32_t hashIndex
OMEhash(className)
Definition: OMEclass.h:57
int inCalledMethod(OMEthread *thread, OMEtype &result)
Definition: OMEthread.cpp:1028
void * data
Definition: OMEnamespace.h:97
const char srcID[]
Definition: catSym.c:17
@ OME_STRING
Definition: OMEmanifests.h:85
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
#define OMEdebugLogLevel3
Definition: OMEdebugInfo.h:35
OMEdefOIL2func(const char *funcName, threeFP f, int args)
Definition: OMEthread.h:324
bool inCalledMethod() const OME_PURE_FUNCTION
Definition: OMEthread.cpp:1017
OME_FAST_CALL int generateException(uint_fast32_t argc, const OMEarray &argv) const
Definition: OMEthread.cpp:1197
virtual void releaseThread()=0
Release a suspended thread.
void executeSlice()
Definition: OMEthread.cpp:1119
OME_FAST_CALL int sendMessageWithSetArgument(const OMEtype &methodName, const uint32_t hashIndx, const OMEtype &argSet, const OMEtype &destObj, const OMEtype &fromObj, const int32_t timeout)
Definition: OMEthread.cpp:593
void terminateThread()
Definition: OMEthread.cpp:1094
int sourceLineNumber
Definition: OMEthread.h:83
int64_t OMEmillisecondsSinceBoot()
Obtain the number of milliseconds since boot of local FARGOS/VISTA Object Management Environment proc...
Definition: OMEprocInfo.cpp:93
#define OMEdebugIncludeArguments
Definition: OMEdebugInfo.h:22
uint32_t stackSize
Definition: OMEmethod.h:46
void dropActiveThreadReference()
Definition: OMEobject.cpp:793
OME_FAST_CALL void callRoutine(const OMEinvocationData *routine, const int level, const OMEstring &methodName, const int srcArgc, const OMEarray &srcArgv)
Definition: OMEthread.cpp:995
~OMEcallStack()
Definition: OMEthread.cpp:272
OME_FAST_CALL void threadNowTerminated(uint32_t exitStatus, bool dontDelete=false)
Definition: OMEthread.cpp:1051
Call record for OMEthread.
Definition: OMEthread.h:30
void setErrorCode(OMEtype &rc) OME_ALWAYS_INLINE
Definition: OMEthread.h:173
void setTickInterval(class OMEtickInterval *interval) OME_ALWAYS_INLINE
Definition: OMEthread.h:115
@ OME_NIL
Definition: OMEmanifests.h:78
OMEdefOIL2func(const char *funcName, oneFP f, int args)
Definition: OMEthread.h:310
#define OME_EXPECT_TRUE(expr)
Annotation macro for conditional expression expected to be true.
Definition: compiler_hints.h:541
const OMEtype & getReplyOID()
Definition: OMEthread.h:125
#define SIMPLE_INCREMENT_COUNTER32_BY(v, amt)
Definition: OMEthread.cpp:19
@ OME_OID
Definition: OMEmanifests.h:84
DeleteStackFP deleteStackRoutine
Definition: OMEmethod.h:53
OME_FAST_CALL void getOIDdata(OMEoidID *idInfo) const
Definition: OMEobject.cpp:105
int OMEdefineNewMethod(const OMEmethodDefinition &definitionRecord)
Definition: OMEnamespace.cpp:248
const OMEclass * classInfo
Pointer to class description.
Definition: OMEobject.h:37
OMEcallStack * callStack
Definition: OMEthread.h:74
int unregisterService(OMEthread *thread, OMEtype &result, const OMEtype &name, const OMEtype &obj)
Definition: OMEthread.cpp:162
int getThreadPriority() const OME_ALWAYS_INLINE
Definition: OMEthread.h:123
const OMEtype & getReplyResult() const OME_ALWAYS_INLINE
Definition: OMEthread.h:177
static OMEdefOIL2func * listStart
Definition: OMEthread.h:289
static const OMEstring nullOMEstring
Definition: OMEstring.h:317
OME_DLL_EXPORT void INIT_DECLARE_OMEthread()
Definition: OMEthread.cpp:1276
OMEtype & getErrorCode() OME_ALWAYS_INLINE
Definition: OMEthread.h:175
virtual void terminateThread()=0
Terminate a thread.
int threadPriority
Definition: OMEthread.h:76
OME fundamental type implementation.
const OMEstring * getUserName() const
Definition: OMEobjACL.cpp:460
#define NOTE_DEFAULT_NLM(s)
Declare the default message within a DEFINE_NLM_MESSAGE() block.
Definition: OMEdebugInfo.h:314
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) override
Invoke method against an object.
Definition: OMEthread.cpp:915
OMEdefOIL2func(const char *funcName, fourFP f, int args)
Definition: OMEthread.h:331
bool resultPending
Definition: OMEthread.h:70
Abstract interface for an OME thread controller.
Definition: OMEthreadCntrl.h:22
CreateStackFP createStackRoutine
Definition: OMEmethod.h:52
#define DEFINE_NLM_MESSAGE(Lvl, MessID, AppName)
Define an Native Language Message.
Definition: OMEdebugInfo.h:318
void unregisterAllServices()
Definition: OMEthread.cpp:109
OMEtype fromObject
Definition: OMEthread.h:78
OMEtype userInfo
Definition: OMEthread.h:67
const char srcID[] OME_USED
Definition: tick_time.cpp:24
Implementation of OME threads for compiled OIL2 source.
Definition: OMEthreadCntrl.h:52
OMEdefOIL2func(const char *funcName, eightFP f, int args)
Definition: OMEthread.h:359
void clearResultPending() OME_ALWAYS_INLINE
Definition: OMEthread.h:109
OMEcallStack(const OMEoid &obj, const OMEinvocationData *routine, int level, const OMEstring &methodNm, const uint32_t srcArgc, const OMEarray &srcArgv)
Definition: OMEthread.cpp:241
Subclass of OMEobject that provides access to a local object.
Definition: OMEobject.h:135
#define OME_ERROR_NO_SUCH_OBJECT
Definition: OMEerror.h:19
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
OME_FAST_CALL int sendMessageAndWait(const OMEstring &methodName, const uint32_t hashIndx, const uint32_t argc, const OMEarray &argv, const OMEtype &destObj)
Definition: OMEthread.cpp:827
OMEtype objectData
Definition: OMEthread.h:32
OME_CORE_CALL int(* sevenFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:274
@ OME_THREAD_INIT
thread is being initialized
Definition: OMEthread.h:19
uint_fast32_t elementCount() const OME_ALWAYS_INLINE
Definition: OMEarray.h:247
#define OME_CONST_FUNCTION
Mark as an idempotent function that only accesses arguments – no global data.
Definition: compiler_hints.h:390
OMEstring className
Definition: OMEclass.h:55
#define OME_INVOKE_KERNEL_THREAD
Definition: OMEmethod.h:13
OMEthread * fromThreadInstance
Definition: OMEthread.h:80
@ OME_SET
Definition: OMEmanifests.h:89
#define NEXT_NLM_PARAM
Define value for next positional parameter.
Definition: OMEdebugInfo.h:337
void addIntervalCounts(const OMEinvocationData *method)
Definition: OMEthreadCntrl.cpp:41
class OMEtickInterval * tickInterval
Definition: OMEthread.h:85
~OMEdefOIL2func()
Definition: OMEthread.h:366
Record to define the implementation of an OIL2 function.
Definition: OMEthread.h:287
OMEthreadStates
Definition: OMEthread.h:18
@ CAN_ASSIGN
can assign into type
Definition: OMEbaseType.h:63
OMEdefOIL2func(const char *funcName, twoFP f, int args)
Definition: OMEthread.h:317
#define OME_EXPECT_FALSE(expr)
Annotation macro for conditional expression expected to be false.
Definition: compiler_hints.h:540
#define OME_ALWAYS_INLINE
Tell the compiler to alway inline a function, regardless of optimization level.
Definition: compiler_hints.h:364
Record to describe the implementation of the method of an OME class.
Definition: OMEmethod.h:35
const char * methodName
Definition: OMEnamespace.h:90
OMEdefOIL2func(const char *funcName, fiveFP f, int args)
Definition: OMEthread.h:338
Implements thread queues with multiple levels of priority.
Definition: OMEexecQueue.h:21
Implementation of OME thread controller for native threads.
Definition: OMEthreadCntrl.h:89
STREAMTYPE & outputOnStream(STREAMTYPE &outputOnStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OUTPUT_TYPENAME) const
Definition: OMEoutputOnStream.h:311
#define OME_FAST_CALL
Definition: compiler_hints.h:468
bool preemptable
Definition: OMEthread.h:69
int listRegisteredServices(OMEthread *, OMEtype &result, const OMEtype &flag)
Definition: OMEthread.cpp:212
int argCount
Definition: OMEthread.h:301
void setResultPending() OME_ALWAYS_INLINE
Definition: OMEthread.h:111
void registerFunction()
Definition: OMEthread.h:292
#define _STD
Definition: OMEmanifests.h:146
OMEtype * nextElement()
Iterate over a set by retrieving the next element.
Definition: OMEset.cpp:280
OME debug and profiling interfaces.
bool isExternal() const OME_ALWAYS_INLINE
Definition: OMEoid.h:300
OME_CORE_CALL int(* fiveFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:267
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.
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
int lookupLocalService(OMEthread *thread, OMEtype &result, const OMEtype &name)
Definition: OMEthread.cpp:190
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
int_fast32_t dropReference()
Definition: OMErefCount.cpp:144
virtual const char * controllerType() const OME_CONST_FUNCTION=0
Return label identifying the type of the thread controller.
Public interface to an OME thread.
Definition: OMEthread.h:60
#define LOG_ENDLINE
Closing clause for text line output using << operators.
Definition: logging_api.hpp:2956
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
void setAsPreemptable()
Definition: OMEthread.cpp:450
uint32_t programCounter
Definition: OMEthread.h:39
OME_FAST_CALL int setUserID(const OMEstring &userID, const OMEstring &pwInfo)
Definition: OMEobjACL.cpp:437
void dropThisObjectReference() OME_ALWAYS_INLINE
Definition: OMEthread.h:159
OME_FAST_CALL void * getInstanceData() const
Definition: OMEthread.cpp:1036
uint32_t type
Definition: OMEbaseType.h:304
@ OME_DEFAULT_COMPLEX_OUTPUT_MODE
Definition: OMEmanifests.h:116
const OME_FAST_CALL OMEtype & getThisObject() const
Definition: OMEthread.h:51
#define OME_ERROR_NOT_AUTHORIZED
Definition: OMEerror.h:18
OME_FAST_CALL OMEtype & OMEgetObjectCreatorOID(const OMEtype &userInfo) OME_CONST_FUNCTION
Definition: OMEcreate.cpp:117
OME_CORE_CALL int(* sixFP)(OMEthread *, OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &, const OMEtype &)
Definition: OMEthread.h:270
#define OME_CORE_CALL
Definition: compiler_hints.h:472
@ OME_ARRAY
Definition: OMEmanifests.h:86
OME_FAST_CALL void setPC(uint32_t pc) OME_ALWAYS_INLINE
Definition: OMEthread.h:165
#define OMEtype
Definition: tmp.o.cpp:396
void resetIterator()
Reset the internal iterator to the beginning of the list.
Definition: OMEset.cpp:264
class OMEset * set
Definition: OMEbaseType.h:298
#define AND_OUTPUT_NLM(o, t)
Render NLM data to an output stream.
Definition: OMEdebugInfo.h:327
bool refersTo(const class OMEobject *obj) const OME_ALWAYS_INLINE
Definition: OMEoid.h:295
OMEtype threadErrorCode
Definition: OMEthread.h:81
const OMEtype & getUserID() const OME_ALWAYS_INLINE
Definition: OMEthread.h:146
const OMEoid * OMEfindGatewayToDestination(const OMEoid *remoteObj)
Lookup the gateway object to be used to send a messsage to a particular object identifier.
Definition: OMErouteEntry.cpp:18
OMEthreadStates threadState
Definition: OMEthread.h:75
union OMEinvocationData::@30 code
static void defineOMEthreadClass()
Definition: OMEthread.cpp:315
OMEdefOIL2func(const char *funcName, sevenFP f, int args)
Definition: OMEthread.h:352
int yieldSlice(OMEthread *thread, OMEtype &result)
Definition: OMEthread.cpp:61
Fundamental elements of an OME object identifier.
Definition: OMEoid.h:27
#define OME_INVOKE_OIL2_NATIVE
Definition: OMEmethod.h:12
const class OMEobject * getInstanceInMemory() const
Return object information record.
Definition: OMEoid.h:280
@ OME_ASSOC
Definition: OMEmanifests.h:87
uint32_t totalInvocations
Definition: OMEobject.h:32
Specialization of OMEthreadNativeOIL2 for OIL2 source compiled to OIL2 Architecture Native Format.
Definition: OMEthreadCntrl.h:70
const OMEinvocationData * methodBody
Definition: OMEthread.h:34
OMEthreadController * threadController
Definition: OMEthread.h:65
OME_FAST_CALL void setReplyResult(const OMEtype &arg, bool sameThread=false)
Definition: OMEthread.cpp:439
void noteObjectModified() OME_ALWAYS_INLINE
Definition: OMEthread.h:191
#define OME_PURE_FUNCTION
Mark as an idempotent function that can access global variables.
Definition: compiler_hints.h:388
OME_FAST_CALL void * getInstanceDataAtLevel(uint_fast16_t lvl) const OME_ALWAYS_INLINE
Return pointer to instance variables.
Definition: OMEobject.h:187
virtual void yieldSlice()=0
Yield time slice currently being used by an active thread.
OMEthread(const OMEinvocationData *routine, const int level, const OMEoid &obj, const OMEstring &methodName, const uint32_t srcArgc, const OMEarray &srcArgv, const OMEtype *fromObj=nullptr, const OMEthread *fromThread=nullptr, const OMEoid *notifyObj=nullptr)
Definition: OMEthread.cpp:346
#define LOG_CERR(lvl)
Convenience macro that uses LOG_INTO() to conditionally log a message to standard error.
Definition: logging_api.hpp:3014
OMEtype * replyOID
Definition: OMEthread.h:64