Go to the documentation of this file.00001 #ifndef baciCharacteristicModelImpl_H
00002 #define baciCharacteristicModelImpl_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 
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     
00102 
00103     virtual CosPropertyService::PropertySet_ptr get_all_characteristics ();
00104    
00105     
00106 
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     
00129     static PortableServer::POA_ptr offShootPOA;
00130 
00131 }; 
00132 
00133  }; 
00134 
00135 #endif
00136 
00137 
00138 
00139 
00140