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

cdbDAOImpl.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * E.S.O. - ACS project
00003 *
00004 * "@(#) $Id: cdbDAOImpl.h,v 1.31 2008/09/29 09:51:19 cparedes Exp $"
00005 *
00006 * who       when        what
00007 * --------  ----------  ----------------------------------------------
00008 * dvitas    2002/07/01  created
00009 */
00010 
00011 #ifndef cdbDAOImpl_H_
00012 #define cdbDAOImpl_H_
00013 
00014 #include <cdb.h>
00015 
00017 // internal class for XML tree handling
00018 
00019 class CXMLTreeNode
00020 {
00021   public:
00022     CXMLTreeNode( CXMLTreeNode *pParent );
00023     ~CXMLTreeNode();
00024     void getAttributeNames( cdb::String &names );
00025 
00026     CXMLTreeNode* m_parent; // parent in access tree
00027     typedef std::map<cdb::String, CXMLTreeNode*> MapStringToNode;
00028     //
00029     MapStringToNode                             m_subNodesMap;
00030     cdb::MapStringToField m_fieldMap;
00031     cdb::String                                                         m_name;
00032 };
00033 
00035 //
00036 #ifdef _DAO_SERVANT_BUILD
00037 #include <cdbDALS.h>
00038 class  DAOImpl : public virtual POA_CDB::DAO
00039 #else
00040 #include <cdbDALC.h>
00041 class  DAOImpl
00042 #endif
00043 {
00044   public:
00045     //Constructor 
00046     DAOImpl ( const char* curl );
00047     DAOImpl ( CDB::DAO_ptr  dao );
00048     
00049     //Destructor 
00050     virtual ~DAOImpl (void);
00051     virtual cdb::Boolean isInitialized() { return m_initialized; }
00052     
00054     // scalars
00055     /*
00056     * @throw cdbErrType::WrongCDBDataTypeEx
00057     */
00058     virtual CORBA::Long get_long (const char * propertyName );
00059     
00060     /*
00061     * @throw cdbErrType::WrongCDBDataTypeEx
00062     */
00063     virtual CORBA::Double get_double (const char * propertyName);
00064     
00065     /*
00066     * @throw cdbErrType::WrongCDBDataTypeEx
00067     */
00068     virtual char * get_string (const char * propertyName );
00069 
00070     /*
00071     * @throw cdbErrType::WrongCDBDataTypeEx
00072         * @throw cdbErrType::CDBFieldDoesNotExistEx
00073     */
00074     virtual char * get_field_data (const char * propertyName );
00075 
00077     // sequences
00078     /*
00079     * @throw cdbErrType::WrongCDBDataTypeEx
00080         * @throw cdbErrType::CDBFieldDoesNotExistEx
00081     */
00082     virtual ::CDB::stringSeq * get_string_seq (const char * propertyName );
00083 
00084     /*
00085     * @throw cdbErrType::WrongCDBDataTypeEx
00086         * @throw cdbErrType::CDBFieldDoesNotExistEx
00087     */
00088     virtual ::CDB::longSeq * get_long_seq (const char * propertyName );
00089 
00090     /*
00091     * @throw cdbErrType::WrongCDBDataTypeEx
00092         * @throw cdbErrType::CDBFieldDoesNotExistEx
00093     */
00094     virtual ::CDB::doubleSeq * get_double_seq (const char * propertyName );
00095 
00096     cdb::Boolean get_field( const cdb::String &strFieldName, cdb::Field &fld );
00097 
00098   public:
00099     ACE_CString m_name; 
00100     ACE_CString m_errorMessage;
00101 
00102   // internal operations
00103   protected:
00104     void        Start(const char *el, const char **attr);
00105     void        End(const char *el);
00106 
00107     static void start(void *data, const char *el, const char **attr);
00108     static void end(void *data, const char *el);
00109 
00110   // implementation
00111   protected:
00112     ACE_CString m_xml;
00113     cdb::Boolean                        m_initialized;
00114 
00115     // temporary variables for array handling 
00116     int                         m_inArray;
00117     cdb::String         m_arrayName;
00118     
00119     cdb::String         m_arrayType;
00120     cdb::String         m_arrayContent;
00121 
00122     // XTML tree handling
00123     CXMLTreeNode* m_rootNode;
00124     CXMLTreeNode* m_currNode;
00125 
00126     int                 m_remote; // holding info about current location of this object
00127     CDB::DAO_var        m_dao;
00128 };
00129 
00130 #endif /* DAO_H_  */
00131 
00132 
00133 
00134 
00135 

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