Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes

LampWheel Class Reference
[ACS Components Examples]

#include <acsexmplLampWheelImpl.h>

Inheritance diagram for LampWheel:
Inheritance graph
[legend]
Collaboration diagram for LampWheel:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 LampWheel (const ACE_CString &name, maci::ContainerServices *containerServices)
virtual ~LampWheel ()
virtual void initialize ()
virtual void execute ()
virtual void cleanUp ()
virtual void aboutToAbort ()
virtual baci::ActionRequest invokeAction (int function, baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)
virtual baci::ActionRequest moveAction (baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)
virtual void move (CORBA::Short, ACS::CBvoid_ptr, const ACS::CBDescIn &)
virtual ACS::ROdouble_ptr position ()
virtual ACS::ROstring_ptr desc ()
virtual ACS::ROlong_ptr slots ()

Private Member Functions

void operator= (const LampWheel &)
int retrieveConfigurationFromCDB (std::list< SlotDescriptor > &config)

Static Private Member Functions

static void start_hndl (void *data, const XML_Char *el, const XML_Char **attr)
static void end_hndl (void *data, const XML_Char *el)
static void char_hndl (void *data, const XML_Char *s, int len)

Private Attributes

ACE_CString m_fullName
baci::SmartPropertyPointer
< baci::ROdouble
m_position_sp
baci::SmartPropertyPointer
< baci::ROstring
m_desc_sp
baci::SmartPropertyPointer
< baci::ROlong
m_slots_sp
std::list< SlotDescriptorm_lampWheelConfiguration

Detailed Description

The class LampWheel class simulates the behavior of a very simple lamp wheel using an asynchronous method to rotate it.

The component reads the wheel data from the CDB. The lamp wheel is caracterized by a description, a number of available slots and a description of the used slots. All these data reside on the CDB. In particular, the number of defined slots is not defined a priori but is retrieved by parsing the CDB record for the component.

At startup, the component read the description of the wheel from the CDB and stores the configuration into a list. The move method moves the wheel to the position defined for the passed slot number. The position is read from the list (i.e. from the CDB). A log message inform the user about the selected lamp.

Author:
Alessandro Caproni,
Version:
"@(#) $Id: acsexmplLampWheelImpl.h,v 1.16 2008/10/09 08:41:11 cparedes Exp $"

Constructor & Destructor Documentation

LampWheel::LampWheel ( const ACE_CString &  name,
maci::ContainerServices containerServices 
)

Constructor

Parameters:
poa Poa which will activate this and also all other components.
name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration Database.

The documentation for this class was generated from the following file: