#include <acsexmplDoorImpl.h>
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 () |
Door is a simple component that utilizes just about every ACS API. This class implements an example device "Door". It provides both synchronous (move(...)) and asynchronous methods (open() and close()). A control loop thread simulates the door's movements. Error and exception handling have been included. Asynchronous calls are implemented using the callback pattern via a support class. For each xxx action defined in the IDL interface two methods are provided:
void DoorThread::runLoop | ( | ) | [friend] |