1 #ifndef __JDB_JSELECTOR__ 
    2 #define __JDB_JSELECTOR__ 
   13 #include "dbclient/KM3NeTDBClient.h" 
   20 namespace JDATABASE {};
 
   21 namespace JPP { 
using namespace JDATABASE; }
 
   27   using KM3NeT::DB::Selector;
 
   33   static const Selector::RelOp* 
const OPERAND[] = 
 
   35       &Selector::RelOp::Equal,
 
   36       &Selector::RelOp::Different,
 
   37       &Selector::RelOp::Less,
 
   38       &Selector::RelOp::LessEqual,
 
   39       &Selector::RelOp::Greater,
 
   40       &Selector::RelOp::GreaterEqual
 
   56   inline const Selector::RelOp& 
getOperand(
const int index)
 
   70     public JMath<JSelector>
 
   76     static const char EOL = 
';';    
 
   94     JSelector(
const std::string& key, 
const T value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
   96       add(key, value, operand);
 
  107     template<
class JClass_t, 
class JType_t>
 
  108     JSelector(JType_t JClass_t::*data_member, 
const JType_t value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
  110       add(data_member, value, operand);
 
  121     template<
class JClass_t>
 
  122     JSelector(std::string JClass_t::*data_member, 
const std::string value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
  124       add(data_member, value, operand);
 
  138       copy(selection.begin(), selection.end(), back_inserter(*
this));
 
  153     JSelector& 
add(
const std::string& key, 
const T value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
  161       push_back(Selector(key.c_str(), os.str().c_str(), operand));
 
  175     template<
class JClass_t, 
class JType_t>
 
  176     inline JSelector& 
add(JType_t JClass_t::*data_member, 
const JType_t value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
  190     template<
class JClass_t>
 
  191     inline JSelector& 
add(std::string JClass_t::*data_member, 
const std::string& value, 
const Selector::RelOp& operand = Selector::RelOp::Equal) 
 
  215           string::size_type pos = buffer.find(
getOperand(i).Render());
 
  217           if (pos != string::npos && (operand == -1 || 
getOperand(i).Render().length() > 
getOperand(operand).Render().length())) {
 
  224           string::size_type pos = buffer.find(
getOperand(operand).Render());
 
  226           selector.push_back(Selector(
JPP::trim(buffer.substr(0, pos)).c_str(),
 
  232           in.setstate(ios::badbit);
 
  249       for (const_iterator i = selector.begin(); i != selector.end(); ++i) {
 
  250         out << i->Name << i->RelationalOperator.Render()  << i->Value << 
JSelector::EOL << std::endl;
 
JSelector & add(JType_t JClass_t::*data_member, const JType_t value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Add selection. 
 
Auxiliary base class for aritmetic operations of derived class types. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
friend std::ostream & operator<<(std::ostream &out, const JSelector &selector)
Write selector to output stream. 
 
JSelector(JType_t JClass_t::*data_member, const JType_t value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Constructor. 
 
Auxiliary class for specifying selection of database data. 
 
const char * getColumn(JType_t JTable_t::*data_member)
Get column name. 
 
std::string trim(const std::string &buffer)
Trim string. 
 
JSelector()
Default constructor. 
 
JSelector & add(const JSelector &selection)
Add selection. 
 
static const int NUMBER_OF_OPERANDS
Number of available operands. 
 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
static const char EOL
End-of-line. 
 
const Selector::RelOp & getOperand(const int index)
Get operand. 
 
friend std::istream & operator>>(std::istream &in, JSelector &selector)
Read selector from input stream. 
 
JSelector(const std::string &key, const T value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Constructor. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to. 
 
Base class for data structures with artithmetic capabilities. 
 
JSelector(std::string JClass_t::*data_member, const std::string value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Constructor. 
 
Exception for accessing an index in a collection that is outside of its range. 
 
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
 
JSelector & add(std::string JClass_t::*data_member, const std::string &value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Add selection. 
 
static const Selector::RelOp *const OPERAND[]
Available operands. 
 
JSelector & add(const std::string &key, const T value, const Selector::RelOp &operand=Selector::RelOp::Equal)
Add selection.