Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

cdbDALaccess.h

Go to the documentation of this file.
00001 /******************************************************************* 00002 * E.S.O. - ACS project 00003 * 00004 * "@(#) $Id: cdbDALaccess.h,v 1.33 2008/09/29 09:51:19 cparedes Exp $" 00005 * 00006 * who when what 00007 * -------- ---------- ---------------------------------------------- 00008 * dvitas 2002/07/01 created 00009 */ 00010 00011 #ifndef __cdb_DALaccess_h__ 00012 #define __cdb_DALaccess_h__ 00013 00014 00015 #include <acsutil.h> 00016 #include <cdbExport.h> 00017 00018 #include <cdb.h> 00019 #include <cdbDALC.h> 00020 #include <cdbDALS.h> 00021 #include <cdbDAOImpl.h> 00022 00023 00024 namespace cdb { 00025 00026 class DALChangeListenerImpl; 00027 00028 class cdb_EXPORT DALaccess : public Table 00029 { 00030 public: 00031 DALaccess( int argc, char *argv[], CORBA::ORB_ptr orb = CORBA::ORB::_nil() ); 00032 virtual ~DALaccess(); 00033 static Table* createTable( int argc, char** argv, CORBA::ORB_ptr orb ); 00034 00035 // Overrides 00036 virtual Boolean isInitialized() { return m_initialized; } 00037 00038 Boolean CreateRecord(const String &strRecordName, 00039 Boolean bTruncate = FALSE); 00040 00041 ULong GetRecordState(const String &strRecordName); 00042 00043 Boolean GetField(const String &strRecordName, 00044 const String &strFieldName, 00045 Field &fld); 00046 00047 Boolean SetField(const String &strRecordName, 00048 const String &strFieldName, 00049 const Field &fld, 00050 Boolean bCreate = TRUE); 00051 00052 Boolean RemoveField(const String &strRecordName, 00053 const String &strFieldName); 00054 00055 Boolean GetRecord(const String &strRecordName, 00056 Record &rec, 00057 Boolean bCreate = FALSE, 00058 Boolean bAppend = FALSE); 00059 00060 Boolean SetRecord(const String &strRecordName, 00061 const Record &rec, 00062 Boolean bCreate = TRUE, 00063 Boolean bAll = TRUE); 00064 Boolean RemoveRecord(const String &strRecordName); 00065 00066 virtual Boolean GetChildren(const String &strRecordName, 00067 StringArray &astrChildren); 00068 // 00069 void UseLocalDAOs( int localDAOs = 1 ) { m_useLocalDAO = localDAOs; } 00070 00071 static void forceDAL(CDB::DAL_ptr dal) { m_forcedDAL = CDB::DAL::_duplicate(dal); } 00072 static void exitFunction() { exitStarts = 1; } 00073 protected: 00074 // Operations 00075 char* resolveDALserverIOR( int argc, char *argv[] ); 00076 DAOImpl* getDAO( const String &strRecordName ); 00077 00078 // Implementation 00079 CORBA::ORB_var m_orb; 00080 CDB::DAL_var m_dal; 00081 Boolean m_initialized; 00082 int m_useLocalDAO; 00083 Boolean m_destroyORB; 00084 int m_useCacheListener; 00085 00086 typedef std::map<String, DAOImpl*> MapStrRec; 00087 MapStrRec m_mpRecords; 00088 00089 CDB::DALChangeListener_var changeListenerObj; 00090 long changeListenerID; 00091 00092 friend class DALChangeListenerImpl; 00093 // avoid deregistration of change listener when stub objects are destroyed 00094 static int exitStarts; 00095 00096 static CDB::DAL_var m_forcedDAL; 00097 00098 }; 00099 00100 class DALChangeListenerImpl : public POA_CDB::DALChangeListener 00101 { 00102 public: 00103 virtual void object_changed ( 00104 const char * curl 00105 00106 ); 00107 00108 DALaccess::MapStrRec* pMap; 00109 00110 }; 00111 00112 }; 00113 00114 #endif // __cdb_DALaccess_h__ 00115 00116 00117

Generated on Thu Apr 30 02:30:50 2009 for ACS C++ API by doxygen 1.3.8