ACSSampObjImpl − |
#include <acssampObjImpl.h> |
Classes |
struct SampData |
Public Member Functions |
ACSSampObjImpl (const ACE_CString &_cobName, const ACE_CString &_propertyName, ACS::TimeInterval _sampFrequency, ACS::TimeInterval _sampReportRate, baci::BACIComponent *_m_cob, ACS::Property_var _genProperty, ACSSampImpl *_sampPtr) |
virtual ~ACSSampObjImpl () |
virtual void start () |
virtual void stop () |
virtual void destroy () |
virtual void suspend () |
virtual void resume () |
virtual void setFrequency (ACS::TimeInterval sFrequency) |
virtual void getFrequency (ACS::TimeInterval_out sFrequency) |
virtual void setRate (ACS::TimeInterval rRate) |
virtual void getRate (ACS::TimeInterval_out rRate) |
virtual void initialize () |
virtual void doSamp () |
virtual void flushSamp () |
ACS::TimeInterval getSampFrequency () const |
void setSampFrequency (const ACS::TimeInterval &_sampFrequency) |
ACS::TimeInterval getReportRate () const |
void setReportRate (const ACS::TimeInterval &_sampReportRate) |
CORBA::Object_ptr getCORBAReference () const |
virtual char * getChannelName () |
bool isInDestructState () const |
Private Attributes |
ACE_CString cobName |
ACE_CString propertyName |
ACE_CString sampObjName |
ACE_CString sampChannelName |
ACS::TimeInterval sampFrequency |
ACS::TimeInterval sampReportRate |
bool inDestructState |
baci::BACIComponent * cob_p |
SamplingThread< ACS_SAMP_TL > * controlLoop_p |
SamplingThreadFlush< ACS_SAMP_TL > * flush_p |
ACS::Property_var genProperty_p |
T_var propToSamp_p |
ACE_Message_Queue< ACE_SYNCH > * mq_p |
nc::SimpleSupplier * sampSupplier_p |
CORBA::Object_ptr reference_p |
ACSSampImpl * samp_p |
template<ACS_SAMP_C> class ACSSampObjImpl< ACS_SAMP_C > |
This class implements all methods used to sample a specific property. In particular, once a new sampling object is initialized, with user-defined parameters (like the sampling rate, the report rate etc.) it allows to start/stop/pause/continue the sampling. Moreover it expose methods to change these parametrs on-the-fly. All buffered data are delivered automatically to the notification channel; trough it a client could retrieve them, and subsequently plot them or perform the necessary kind of analysis. This class is a template. This because the type of the property could be RWdouble, RWlong etc. This class is meant to be used trough the factory class ACSSampImpl. |
template<ACS_SAMP_C > ACSSampObjImpl< ACS_SAMP_C >::ACSSampObjImpl (const ACE_CString & _cobName, const ACE_CString & _propertyName, ACS::TimeInterval _sampFrequency, ACS::TimeInterval _sampReportRate, baci::BACIComponent * _m_cob, ACS::Property_var _genProperty, ACSSampImpl * _sampPtr) Constructor It construct the sampling object, using the following parameters: |
Parameters: |
_cobName name of the component, which property is
to be sampled (e.g.LAMP1 ) |
template<ACS_SAMP_C > virtual ACSSampObjImpl< ACS_SAMP_C >::~ACSSampObjImpl () [virtual] Destructor |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::destroy () [virtual] Destroy the sampling object. Implementation of IDL destroy() interface (inherited from the ACS:Subscription interface). |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::doSamp () [virtual] Do the sampling. Retrieves data from the property using get_sync(). Data are stored in an internal array used as a buffer. |
Returns: |
void |
Referenced by SamplingThread< ACS_SAMP_TL >::runLoop(). |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::flushSamp () [virtual] Flush data from the internal array to the notification channel. |
Returns: |
void |
Referenced by SamplingThreadFlush< ACS_SAMP_TL >::runLoop(). |
template<ACS_SAMP_C > virtual char* ACSSampObjImpl< ACS_SAMP_C >::getChannelName () [virtual] Is the channel name of the notification channel onto which the data are delivered. The name is composed by concatenation of the following string: NC_ Component name_ Property name_ SampRate_ ReportRate_ (e.g. NC_LAMP1_brightness_1000000_10000000) |
Returns: |
channelName. |
template<ACS_SAMP_C > CORBA::Object_ptr ACSSampObjImpl< ACS_SAMP_C >::getCORBAReference () const [inline] Internal method to get the CORBA reference to the newly activated CORBA object (i.e. this sampling object). |
Returns: |
reference_p reference to the CORBA object. |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::getFrequency (ACS::TimeInterval_out sFrequency) [virtual] Gets the sampling frequency of an already activated sampling object. |
Parameters: |
sFrequency the current sampling frequency (units are 100ns; e.g. 1000000 means 10 sample per second) |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::getRate (ACS::TimeInterval_out rRate) [virtual] Gets the report rate of an already activated sampling object. |
Parameters: |
sFrequency the current report rate report rate (units are 100ns; e.g. 10000000 means collect data for 1 second) |
Returns: |
void |
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::getReportRate () const [inline] Internal method to retrieve the report rate. |
Returns: |
sampReportRate |
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::getSampFrequency () const [inline] Internal method to retrieve the sampling frequency. |
Returns: |
sampFrequency |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::initialize () [virtual] Initialize (activate) the sampling object, with parameters passed in the constructor. |
Exceptions: |
ACSErrTypeCommon::OutOfBoundsExImpl |
Returns: |
void |
template<ACS_SAMP_C > bool ACSSampObjImpl< ACS_SAMP_C >::isInDestructState () const [inline] Internal thread used to determine when the sampling object is to be destroyed. |
Returns: |
state 1 if is in a destruction state. |
Referenced by SamplingThreadFlush< ACS_SAMP_TL >::runLoop(), and SamplingThread< ACS_SAMP_TL >::runLoop(). |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::resume () [virtual] Resume the sampling. Implementation of IDL resume() interface (inherited from the ACS:Subscription interface). |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::setFrequency (ACS::TimeInterval sFrequency) [virtual] Sets the sampling frequency of an already activated sampling object. |
Parameters: |
sFrequency a new sampling frequency (units are 100ns; e.g. 1000000 means 10 sample per second) |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::setRate (ACS::TimeInterval rRate) [virtual] Sets the report rate of an already activated sampling object. |
Parameters: |
sFrequency a new report rate (units are 100ns; e.g. 10000000 means collect data for 1 second) |
Returns: |
void |
template<ACS_SAMP_C > void ACSSampObjImpl< ACS_SAMP_C >::setReportRate (const ACS::TimeInterval & _sampReportRate) Internal method to set the report rate. |
Parameters: |
_sampReportRate. |
Returns: |
void |
template<ACS_SAMP_C > void ACSSampObjImpl< ACS_SAMP_C >::setSampFrequency (const ACS::TimeInterval & _sampFrequency) Internal method to set the sampling frequency. |
Parameters: |
_sampFrequency. |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::start () [virtual] Starts the sampling. Implementation of IDL start() interface. |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::stop () [virtual] Stops the sampling. Implementation of IDL stop() interface. |
Returns: |
void |
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::suspend () [virtual] Suspend the sampling. Implementation of IDL suspend() interface (inherited from the ACS:Subscription interface). |
Returns: |
void |
template<ACS_SAMP_C > baci::BACIComponent* ACSSampObjImpl< ACS_SAMP_C >::cob_p [private] BACI Component instance This is a reference to the factory CORBA object |
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::cobName [private] |
template<ACS_SAMP_C > SamplingThread<ACS_SAMP_TL>* ACSSampObjImpl< ACS_SAMP_C >::controlLoop_p [private] controlLoop_p is only started once the sampling object is initialized, through the call of method start. It determines the ticks, when the sampling actually occurs; the thread is destroyed when the method destroy is called. |
template<ACS_SAMP_C > SamplingThreadFlush<ACS_SAMP_TL>* ACSSampObjImpl< ACS_SAMP_C >::flush_p [private] flush_p is only started once the sampling object is initialized, through the call of method start. It determines the time, when the sampling are actually flushed on the NC; the thread is destroyed when the method destroy is called. |
template<ACS_SAMP_C > ACS::Property_var ACSSampObjImpl< ACS_SAMP_C >::genProperty_p [private] |
template<ACS_SAMP_C > bool ACSSampObjImpl< ACS_SAMP_C >::inDestructState [private] |
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::isInDestructState(). |
template<ACS_SAMP_C > ACE_Message_Queue<ACE_SYNCH>* ACSSampObjImpl< ACS_SAMP_C >::mq_p [private] Internal buffer containing all data, before the delivering to the notification channel. |
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::propertyName [private] |
template<ACS_SAMP_C > T_var ACSSampObjImpl< ACS_SAMP_C >::propToSamp_p [private] |
template<ACS_SAMP_C > CORBA::Object_ptr ACSSampObjImpl< ACS_SAMP_C >::reference_p [private] |
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getCORBAReference(). |
template<ACS_SAMP_C > ACSSampImpl* ACSSampObjImpl< ACS_SAMP_C >::samp_p [private] |
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::sampChannelName [private] |
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::sampFrequency [private] |
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getSampFrequency(). |
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::sampObjName [private] |
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::sampReportRate [private] |
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getReportRate(). |
template<ACS_SAMP_C > nc::SimpleSupplier* ACSSampObjImpl< ACS_SAMP_C >::sampSupplier_p [private] |
Generated automatically by Doxygen for ACS-2015.2 C++ API from the source code. |