14 #include "dbclient/KM3NeTDBClient.h" 
   26 namespace JDATABASE {}
 
   27 namespace JPP { 
using namespace JDATABASE; }
 
   31   using KM3NeT::DB::DBException;
 
   32   using KM3NeT::DB::Server;
 
   33   using KM3NeT::DB::Client;
 
   34   using KM3NeT::DB::ResultSet;
 
   35   using KM3NeT::DB::Selector;
 
   70     { 
"Default", Server::Default },
 
   71     { 
"Test",    Server::Test    },
 
   72     { 
"Lyon",    Server::Lyon    },
 
   73     { 
"Lyon2",   Server::Lyon2   },
 
   74     { 
"Napoli",  Server::Napoli  }
 
   87       if (element.first == server) {
 
   88         return element.second;
 
  105     const char* 
const server = getenv(
"DATABASE_SERVER");
 
  107     if (server != NULL) {
 
  108       buffer.push_back(server);
 
  112       if (std::find(buffer.begin(), buffer.end(), element.first) == buffer.end()) {
 
  113         buffer.push_back(element.first);
 
  133     const char* 
const server = getenv(
"DATABASE_SERVER");
 
  140       return Server::Default;
 
  151     const char* home = getenv(
"HOME");
 
  153     return MAKE_CSTRING((home != NULL ? home : 
".") << 
"/" << 
".km3netdb_cookie");
 
  164     return getenv(
"DBCOOKIE");
 
  185     public std::shared_ptr<Client>
 
  243       if (db.
get() != NULL) {
 
  245         static_cast<std::shared_ptr<Client>&
>(db).
reset();
 
  259       static_cast<std::shared_ptr<Client>&
>(
JDB::get()) = Client::Create(
getServer(), usr.c_str(), pwd.c_str());
 
  273       string buffer = cookie;
 
  277         ifstream 
in(cookie.c_str());
 
  286       if (pos != string::npos) {
 
  287         buffer.erase(0, pos);
 
  290       static_cast<std::shared_ptr<Client>&
>(
JDB::get()) = Client::Create(
getServer(), buffer.c_str());
 
  315       if      (usr != 
"" && pwd != 
"")
 
  317       else if (cookie != 
"")
 
  352     if (in >> static_cast<std::string&>(server)) {
 
  365   template<
class JTable_t>
 
  378   template<
class JTable_t, 
class JType_t>
 
  379   inline const char* 
getColumn(JType_t JTable_t::*data_member)
 
  382     TClass*   rc = 
dynamic_cast<TClass*
>(TDictionary::GetDictionary(
typeid(JTable_t)));
 
  386       for( std::unique_ptr<TIterator> i(rc->GetListOfDataMembers()->MakeIterator()); 
const TDataMember* p = (
const TDataMember*) i->Next(); ) {
 
  388         if (p->GetOffset() == (
char*) &(pc->*data_member) - (
char*) pc) {
 
  403   template<
class JTable_t>
 
  410     TClass*   rc = 
dynamic_cast<TClass*
>(TDictionary::GetDictionary(
typeid(JTable_t)));
 
  414       for (std::unique_ptr<TIterator> i(rc->GetListOfDataMembers()->MakeIterator()); 
const TDataMember* p = (
const TDataMember*) i->Next(); ) {
 
  416           buffer.push_back(p->GetName());
 
  446     return JDB::get()->StreamDS(query.c_str(), selection);
 
  471     *(
JDB::get()->APIv2Select(query.c_str(), selection)) >> js;
 
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. 
 
#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. 
 
void to_json(json &js, const std::string &query)
Get result set. 
 
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
 
static bool is_class(const char *const name)
Check name of class against ROOT classes. 
 
JDB & operator=(const JDB &)
 
static JDB & get()
Get connection to database.