Go to the documentation of this file.00001 #ifndef _ACSSAMP_IMPL_H
00002 #define _ACSSAMP_IMPL_H
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 #ifndef __cplusplus
00037 #error This is a C++ include file and cannot be used from plain C
00038 #endif
00039 
00040 #include <baciCharacteristicComponentImpl.h>
00041 #include <ACSErrTypeCommon.h>
00042 
00043 #include <acssampS.h>
00044 
00045 #include <vector>
00046 #include <list>
00047 
00073 class ACSSampImpl: public virtual baci::CharacteristicComponentImpl,
00074                    public virtual POA_acssamp::Samp
00075 {    
00076   public:
00077     
00085     ACSSampImpl(const ACE_CString& name, maci::ContainerServices *containerServices);
00086   
00090     virtual ~ACSSampImpl();
00091   
00121     virtual acssamp::SampObj_ptr initSampObj(const char *name,
00122                                              const char *property,
00123                                              ACS::TimeInterval frequency,
00124                                              ACS::TimeInterval reportRate
00125         );
00126 
00127 
00141     virtual void addComponenttoList(CORBA::Object_ptr component_ref);
00142 
00143 
00156     virtual void removeComponentfromList(CORBA::Object_ptr component_ref);
00157   
00158 
00159   private:
00160   
00164     std::list<CORBA::Object_ptr> component_list;
00165 
00166     ACE_Recursive_Thread_Mutex m_samplingListMutex;
00167 };
00168 
00169 
00170 
00171 #endif