class CallMethodOperation : public nn::nex::DOOperation
This DOOperation
executes when an RMC is called on a duplicated object.
The CallMethodOperation
class is generated as a result of an RMC (remote method call) being called. CallMethodOperation
is called by following the sequence below:
・An RMC is called from a given station.
・SafetyExecutive
is called to determine whether it is all right to execute this operation. If there is no problem, the process continues. If there is a problem, the process ends here.
・DuplicatedObject::OperationBegin
is called.
・The RMC is executed.
・DuplicatedObject::OperationEnd
is called. If the RMC is postponed, then when it is called again later the sequence will pass through SafetyExecutive
again before the operation starts.
The main objective of CallMethodOperation
is to ensure that execution does not deadlock while waiting for an embedded RMC call to return a value. This is done by postponing RMCs that are not yet ready to return a result, then calling the RMCs again a short time later. If messages accumulated in the original RMC are relayed to the second-attempt RMC, no other messages will be processed until these messages are processed and the RMC completes.
In addition, this class can be used to control when and how RMCs are called and by whom. All RMCs are uniquely identified by the system. This allows RMCs to be executed or denied based on such factors as the caller station or other circumstances surrounding the call.
Type
|
Enumerated type representing the types of operations called by the system. (Inherits Operation .) |
---|
GetSourceStation
|
Gets the duplicated object handle to the station that called the RMC. | |
---|---|---|
GetTargetMethodID
|
Gets the MethodID of an RMC. |
|
PostponeOperation
|
Postpones an operation. | |
OperationIsPostponed
|
Returns whether this operation has been postponed. | |
GetDelay
|
Gets the delay time for when this operation is postponed. | |
GetAttemptCount
|
Gets the count of how many times this operation has been called. | |
AttachUserContext
|
Attaches a UserContext to this CallMethodOperation . |
|
GetUserContext
|
Gets the UserContext that is attached to this CallMethodOperation . |
|
GetSubStreamID
|
For reliable communication, gets the SubStreamID used during reception. |
|
GetAssociatedDOHandle
|
Gets the duplicated object handle associated with this operation. (Inherits DOOperation .) |
|
GetOrigin
|
Gets a duplicated object handle to a station that has called a function that generates an operation object as a result of the call. (Inherits DOOperation .) |
|
GetAssociatedDO
|
Gets a pointer to the duplicated object associated with the operation. (Inherits DOOperation .) |
|
PV |
GetType
|
Returns the type of this operation object. |
GetUserData
|
Gets user-defined values. (Inherits Operation .) |
|
SetUserData
|
Sets user-defined values. (Inherits Operation .) |
|
PV |
GetClassNameString
|
Gets the class name of this operation object. |
S |
DynamicCast
|
Casts dynamically using runtime information. (Inherits Operation .) |
S |
SetTraceFilter
|
Sets the callback function that specifies when to run traces on operation objects. (Inherits Operation .) |
nn::nex::RootObject
nn::nex::Operation
nn::nex::DOOperation
nn::nex::CallMethodOperation
CONFIDENTIAL