13 #include "dbclient/KM3NeTDBClient.h" 
   24 namespace JDATABASE {}
 
   25 namespace JPP { 
using namespace JDATABASE; }
 
   29   using KM3NeT::DB::DBException;
 
   30   using KM3NeT::DB::Server;
 
   31   using KM3NeT::DB::Client;
 
   32   using KM3NeT::DB::ResultSet;
 
   33   using KM3NeT::DB::Selector;
 
   67     { 
"Default", Server::Default },
 
   68     { 
"Test",    Server::Test    },
 
   69     { 
"Lyon",    Server::Lyon    },
 
   70     { 
"Lyon2",   Server::Lyon2   },
 
   71     { 
"Napoli",  Server::Napoli  }
 
   81   inline const Server& 
getServer(
const std::string& server)
 
   84       if (element.first == server) {
 
   85         return element.second;
 
  102     const char* 
const server = getenv(
"DATABASE_SERVER");
 
  104     if (server != NULL) {
 
  105       buffer.push_back(server);
 
  109       if (std::find(buffer.begin(), buffer.end(), element.first) == buffer.end()) {
 
  110         buffer.push_back(element.first);
 
  130     const char* 
const server = getenv(
"DATABASE_SERVER");
 
  137       return Server::Default;
 
  148     const char* home = getenv(
"HOME");
 
  150     return MAKE_CSTRING((home != NULL ? home : 
".") << 
"/" << 
".km3netdb_cookie");
 
  161     return getenv(
"DBCOOKIE");
 
  182     public std::shared_ptr<Client>
 
  240       if (db.
get() != NULL) {
 
  242         static_cast<std::shared_ptr<Client>&
>(db).
reset();
 
  253     static void reset(
const std::string& usr,
 
  254                       const std::string& pwd)
 
  256       static_cast<std::shared_ptr<Client>&
>(
JDB::get()) = Client::Create(
getServer(), usr.c_str(), pwd.c_str());
 
  265     static void reset(
const std::string& cookie)
 
  270       string buffer = cookie;
 
  274         ifstream 
in(cookie.c_str());
 
  283       if (pos != string::npos) {
 
  284         buffer.erase(0, pos);
 
  287       static_cast<std::shared_ptr<Client>&
>(
JDB::get()) = Client::Create(
getServer(), buffer.c_str());
 
  305     static void reset(
const std::string& usr,
 
  306                       const std::string& pwd,
 
  307                       const std::string& cookie)
 
  312       if      (usr != 
"" && pwd != 
"")
 
  314       else if (cookie != 
"")
 
  349     if (in >> static_cast<std::string&>(server)) {
 
  362   template<
class JTable_t>
 
  375   template<
class JTable_t, 
class JType_t>
 
  376   inline const char* 
getColumn(JType_t JTable_t::*data_member)
 
  379     TClass*   rc = 
dynamic_cast<TClass*
>(TDictionary::GetDictionary(
typeid(JTable_t)));
 
  383       TIterator* i = rc->GetListOfDataMembers()->MakeIterator();
 
  385       for (
const TDataMember* p; (p = (
const TDataMember*) i->Next()) != NULL; ) {
 
  387         if (p->GetOffset() == (
char*) &(pc->*data_member) - (
char*) pc) {
 
  402   template<
class JTable_t>
 
  409     TClass*   rc = 
dynamic_cast<TClass*
>(TDictionary::GetDictionary(
typeid(JTable_t)));
 
  413       TIterator* i = rc->GetListOfDataMembers()->MakeIterator();
 
  415       for (
const TDataMember* p; (p = (
const TDataMember*) i->Next()) != NULL; ) {
 
  417           buffer.push_back(p->GetName());
 
  447     return JDB::get()->StreamDS(query.c_str(), selection);
 
static void reset()
Reset connection to database. 
 
static void reset(const std::string &cookie)
Reset connection to database. 
 
JServer(const char *server)
Constructor. 
 
const char * getTable()
Get table name. 
 
static std::vector< std::pair< JServer, Server > > LIST_OF_SERVERS
Named list of available database servers. 
 
static const Server & getServer()
Get server. 
 
static bool is_class(const char *const class_name)
Check class name against ROOT class names. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
JServer()
Default constructor. 
 
#define MAKE_CSTRING(A)
Make C-string. 
 
static const std::string PREFIX_ADF
 
const char * getColumn(JType_t JTable_t::*data_member)
Get column name. 
 
static void setServer(const Server &server)
Set server. 
 
const Server & getServer(const std::string &server)
Get server by name. 
 
const char * getPrivateCookie()
Get private cookie. 
 
std::vector< std::string > getColumns()
Get column names. 
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
static const char PREFIX_COOKIE
Cookie prefix. 
 
static JStat getFileStatus
Function object for file status. 
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input. 
 
static const std::string PREFIX_DATAFILTER
This string is prepended to every parameter in the database output for the corresponding process...
 
static void reset(const std::string &usr, const std::string &pwd, const std::string &cookie)
Reset connection to database. 
 
const char * getPublicCookie()
Get public cookie. 
 
Auxiliary class for connection to data base. 
 
ResultSet & getResultSet(const std::string &query)
Get result set. 
 
std::vector< JServer > getServernames()
Get list of names of available database servers. 
 
Wrapper class for server name. 
 
static void reset(const std::string &usr, const std::string &pwd)
Reset connection to database. 
 
JDB()
Default constructor. 
 
const char * getName()
Get ROOT name of given data type. 
 
static Server & get_server()
Get server. 
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
JDB & operator=(const JDB &)
 
static JDB & get()
Get connection to database.