#include <acsexmplDoorImpl.h>
Inheritance diagram for Door:
Public Member Functions | |
Door (const ACE_CString &name, maci::ContainerServices *containerServices) | |
virtual | ~Door () |
virtual baci::ActionRequest | invokeAction (int function, baci::BACIComponent *component_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut) |
virtual baci::ActionRequest | openAction (baci::BACIComponent *component_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut) |
virtual baci::ActionRequest | closeAction (baci::BACIComponent *component_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut) |
virtual void | open (ACS::CBvoid_ptr cb, const ACS::CBDescIn &desc) |
virtual void | close (ACS::CBvoid_ptr cb, const ACS::CBDescIn &desc) |
virtual void | move (CORBA::Double pos) |
virtual ACS::ROdouble_ptr | position () |
virtual ACS::RWdouble_ptr | ref_position () |
virtual ACS::ROlong_ptr | substate () |
virtual ACS::ROstring_ptr | version () |
virtual void | execute () |
Private Member Functions | |
virtual void | checkSubstate (CompletionImpl *&error_p) |
void | operator= (const Door &) |
Private Attributes | |
baci::SmartPropertyPointer< baci::RWdouble > | m_ref_position_sp |
baci::SmartPropertyPointer< baci::ROdouble > | m_position_sp |
baci::SmartPropertyPointer< baci::ROlong > | m_substate_sp |
baci::SmartPropertyPointer< baci::ROstring > | m_version_sp |
DoorThread * | m_doorThread_p |
Friends | |
void | DoorThread::runLoop () |
|
Constructor
|
|
Destructor |
|
Checks substate Checks for the device's substate. If the device is busy it returns an error. The purpose of this function is to show how to handle local error information.
|
|
Closes the door Implementation of IDL close() interface. This method just registers the request in the asyncronous queue, together with the associated callback and returns control immediatly. The actual action will be invoked asyncronously by the asynchonous call manager by calling Door::closeAction The given callback is used to inform the caller when the action is performed.
|
|
Implementation of asynch. close() method This is the function that actually closes the Door and, when completed, invokes the callback installed by the client when it requested the action.
|
|
Called after initialize to tell the component that it has to be ready to accept incoming functional calls any time. Must be implemented as a synchronous (blocking) call (can spawn threads though).
Reimplemented from acscomponent::ACSComponentImpl.
|
|
Action dispatcher function This function is called whenever an asynchronous request has to be handled. It receives (as parameters) the description of the function and selects the proper implementation to call.
Implements baci::ActionImplementator.
|
|
Moves the door to the given position Implementation of the IDL move(...) interface. This method, while synchronous, only changes the reference position (i.e., m_ref_position_p) while DoorThread actually handles the change in the door position via an ACS thread.
|
|
Opens the door Implementation of IDL open() interface. This method just registers the request in the asyncronous queue together with the associated callback and returns control immediatly. The actual action will be invoked asyncronously by the asynchonous call manager by calling Door::openAction The given callback is used to inform the caller when the action is performed.
|
|
Implementation of asynch. open() method This is the function that actually opens the Door and, when completed, invokes the callback installed by the client when it requested the action.
|
|
ALMA C++ coding standards state copy operators should be disabled. |
|
Property for readback m_position_p Implementation of IDL interface for the property.
|
|
Property for reference position Implementation of IDL interface for the property.
|
|
Property for substate Implementation of IDL interface for the property.
|
|
Property for version Implementation of IDL interface for the property.
|
|
|
|
|
|
m_position_sp is the Door's actual position |
|
m_ref_position_sp is the position the Door should be in |
|
m_substate_sp is the state the door is currently in
|
|
m_version_sp is the Door's current version |