nn::nex::CallMethodOperation Class

Syntax

class CallMethodOperation : public nn::nex::DOOperation

Description

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.

Enumerated Types

Type Enumerated type representing the types of operations called by the system. (Inherits Operation.)

Member Functions

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.)

Class Hierarchy

nn::nex::RootObject
  nn::nex::Operation
    nn::nex::DOOperation
      nn::nex::CallMethodOperation

Revision History

2011/01/28
Initial version.

CONFIDENTIAL