#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] |
1.7.0