• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

acssampImpl.h

Go to the documentation of this file.
00001 #ifndef _ACSSAMP_IMPL_H
00002 #define _ACSSAMP_IMPL_H
00003 /*******************************************************************************
00004  *    ALMA - Atacama Large Millimiter Array
00005  *    (c) European Southern Observatory, 2002
00006  *    Copyright by ESO (in the framework of the ALMA collaboration)
00007  *    and Cosylab 2002, All rights reserved
00008  *
00009  *    This library is free software; you can redistribute it and/or
00010  *    modify it under the terms of the GNU Lesser General Public
00011  *    License as published by the Free Software Foundation; either
00012  *    version 2.1 of the License, or (at your option) any later version.
00013  *
00014  *    This library is distributed in the hope that it will be useful,
00015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  *    Lesser General Public License for more details.
00018  *
00019  *    You should have received a copy of the GNU Lesser General Public
00020  *    License along with this library; if not, write to the Free Software
00021  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00022  *
00023  *
00024  * "@(#) $Id: acssampImpl.h,v 1.23 2008/10/07 06:41:54 cparedes Exp $"
00025  *
00026  * who       when      what
00027  * --------  --------  ----------------------------------------------
00028  * oat       07/04/03  created 
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 

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0