Door

NAME
SYNOPSIS
Detailed Description
Friends And Related Function Documentation
Author

NAME

Door −

SYNOPSIS

#include <acsexmplDoorImpl.h>

Inherits baci::CharacteristicComponentImpl, and baci::ActionImplementator.

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

Detailed Description

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:

xxx() just registers the action and installs the callback

xxxAction() performs (asyncronously) the action and invokes the callback when finished. The Door::invokeAction method is called by the asynchronous dispatcher whenever there is a xxx pending action and it calls the corresponding xxxAction method.

Version:

Friends And Related Function Documentation

void DoorThread::runLoop () [friend]

Author

Generated automatically by Doxygen for ACS-2015.2 C++ API from the source code.