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

baciCharacteristicModelImpl.h

Go to the documentation of this file.
00001 #ifndef baciCharacteristicModelImpl_H
00002 #define baciCharacteristicModelImpl_H
00003 
00004 /*******************************************************************
00005 * ALMA - Atacama Large Millimiter Array
00006 * (c) European Southern Observatory, 2003 
00007 *
00008 *This library is free software; you can redistribute it and/or
00009 *modify it under the terms of the GNU Lesser General Public
00010 *License as published by the Free Software Foundation; either
00011 *version 2.1 of the License, or (at your option) any later version.
00012 *
00013 *This library is distributed in the hope that it will be useful,
00014 *but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 *Lesser General Public License for more details.
00017 *
00018 *You should have received a copy of the GNU Lesser General Public
00019 *License along with this library; if not, write to the Free Software
00020 *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00021 *
00022 * "@(#) $Id: baciCharacteristicModelImpl.h,v 1.13 2008/10/09 06:18:16 cparedes Exp $"
00023 *
00024 * who       when        what
00025 * --------  ----------  ----------------------------------------------
00026 * bjeram    2003/01/21  created
00027 
00028 */
00029 
00035 #ifndef __cplusplus
00036 #error This is a C++ include file and cannot be used from plain C
00037 #endif
00038 
00039 #include <baciS.h>
00040 
00041 #include <acsContainerServices.h>
00042 #include <lokiSmartPtr.h>
00043 #include <cdbDAONode.h>
00044 #include <cdbErrType.h>
00045 
00046 namespace baci {
00047 
00048 class baci_EXPORT CharacteristicModelImpl : public virtual PortableServer::RefCountServantBase,
00049                                             public virtual POA_ACS::CharacteristicModel
00050 {
00051   public:
00052 
00071     CharacteristicModelImpl(const ACE_CString& model_name, maci::ContainerServices* containerServices);
00072 
00090     CharacteristicModelImpl(const ACE_CString& child_name, CharacteristicModelImpl* parentModel);
00091     
00092     virtual ~CharacteristicModelImpl();
00093 
00094     const char* getModelName() const { return model_name_m.c_str(); };
00095 
00099     cdb::DAONode* getDAONode()const;
00100 
00101     /* ------------------ [ CharacteristicModel interface ] ------------------ */
00102 
00103     virtual CosPropertyService::PropertySet_ptr get_all_characteristics ();
00104    
00105     /*
00106     * @throw ACS::NoSuchCharacteristic
00107     */
00108     virtual CORBA::Any * get_characteristic_by_name (const char * name);
00109    
00110     virtual ACS::stringSeq * find_characteristic (const char * reg_exp);
00111 
00112   protected:
00113 
00118     virtual bool readCharacteristics();
00119 
00121     ACE_CString model_name_m;
00122 
00126     cdb::DAONode* m_daoNode_p;
00127 
00128     // TODO temp and not OK !!!
00129     static PortableServer::POA_ptr offShootPOA;
00130 
00131 }; //class CharacteristicModelImpl
00132 
00133  }; 
00134 
00135 #endif
00136 
00137 
00138 
00139 
00140 

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