// SimpleTableClaimManager.cxx #include "dataset_claim/SimpleTableClaimManager.h" #include "dataset_util/getcwd.h" #include "dataset_sql/SqlTable.h" #include "dataset_catalog/ConnectionResolver.h" using std::string; using dset::SqlTable; using dset::ConnectionResolver; using dset::SimpleTableClaimManager; //********************************************************************** // Embedded classes. //********************************************************************** class SimpleTableClaimManager::Imp { public: string m_conn; SqlTable* m_pctab; public: Imp(string add); }; SimpleTableClaimManager::Imp::Imp(string add) : m_pctab(0) { ConnectionResolver resolver; m_conn = resolver.resolve("Claims", add, true); if ( m_conn.size() ) { string::size_type ipos = m_conn.find(":"); string name = m_conn.substr(0, ipos); string params = m_conn.substr(ipos+1); m_pctab = SqlTable::create(name, params); } } //********************************************************************** //********************************************************************** // Members. //********************************************************************** // Create default instance. string SimpleTableClaimManager::test_instance() { // Define connection resolver. ConnectionResolver::set_configuration_file("resolver.dat"); // Error if catalog is already present. ConnectionResolver res; string conn = "SQLRESULT:" + getcwd() +"/claims.dat"; if ( ! res.resolve("Claims", "").size() ) { // Append to resolver. Text txt("resolver.dat"); txt.append("Claims"); txt.append(conn); txt.write(); // Construct file description of repository. system("rm -f claims.dat"); Text tdsc("claims.dat"); tdsc.append("SQLRESULT"); tdsc.append("claim_id,user,expiration,updated,created"); tdsc.write(); } // Return the connection for this catalog. return conn; } //********************************************************************** // Constructor. SimpleTableClaimManager::SimpleTableClaimManager(string add) : m_pimp(new Imp(add)) { } //********************************************************************** // Validity. bool SimpleTableClaimManager::is_valid() const { return m_pimp->m_pctab != 0; }; //********************************************************************** // Connection. string SimpleTableClaimManager::connection() const { return m_pimp->m_conn; }; //**********************************************************************