nn::nex::RemoveFromStoreOperation Class

Syntax

class RemoveFromStoreOperation : public nn::nex::DOOperation

Description

This operation is executed each time a duplicated object is deleted.

Each station has a region called the Duplicated Object store that stores a list of the local active duplication masters (that have been locally published) and duplicas (that have been locally discovered). Duplicated objects are added to and removed from this Duplicated Object store as they are created and deleted during application runtime. Only those objects in the Duplicated Object store are considered to be active objects and updated on the local station.

The behavior of RemoveFromStoreOperation depends on whether the object being removed is a duplication master (DuplicatedObject::IsADuplicationMaster) or a duplica (DuplicatedObject::IsADuplica).

An instance of a duplication master is removed in either of the two following situations.

When a station holding a duplication master leaves the session and the DuplicatedObject::ApproveEmigration or DuplicatedObject::ApproveFaultRecovery system callback has returned false.
When an instance of a duplication master has been deleted using the DuplicatedObject::DeleteMainRef function.

When a duplication master is removed by either of the two means described above, events are generated in the sequence described below.

SafetyExecutive is called to determine whether the object may be deleted. If so, the process continues. If not, the process aborts.
The DataSet::OperationBegin function is called on all datasets of the target duplicated object.
The DuplicatedObject::OperationBegin function is called.
A multicast deletion message is sent to duplicas in the session (see below).
The reference to the target object is removed from the memory region that stores the list of duplication masters in the Duplicated Object store.
The DataSet::OperationEnd function is called on all datasets of the target duplicated object.
The DuplicatedObject::OperationEnd function is called.
When all references to the object (created using RefTemplate) have been deleted, the object destructor is called.

When a duplica is removed, events are generated in the sequence described below.

SafetyExecutive is called to determine whether the object may be deleted. If so, the process continues. If not, the process aborts.
The DataSet::OperationBegin function is called on all datasets of the target duplicated object.
The DuplicatedObject::OperationBegin function is called.
・The reference to the target object is removed from the memory region that stores the list of duplicas in the Duplicated Object store.
The DataSet::OperationEnd function is called on all datasets of the target duplicated object.
The DuplicatedObject::OperationEnd function is called.
When all references to the object (created using RefTemplate) have been deleted, the object destructor is called.

This operation is not called on duplicated objects when system status has been locked using the Scheduler::SystemLock function.

Enumerated Types

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

Member Functions

ObjectIsDeleted Gets whether this operation was triggered by the deletion of a duplicated object.
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::RemoveFromStoreOperation

See Also

DuplicatedObject::DeleteMainRef

Revision History

2011/01/28
Initial version.

CONFIDENTIAL