Client data structure.  
 More...
#include <JClient.hh>
Client data structure. 
Definition at line 28 of file JClient.hh.
 
◆ JMode
Client modi. 
| Enumerator | 
|---|
| UNKNOWN  |  | 
| SLEEP  |  | 
| ACTIVE  |  | 
| IGNORE  |  | 
| ILLEGAL  |  | 
Definition at line 39 of file JClient.hh.
 
 
◆ JClient() [1/2]
  
  
      
        
          | KM3NETDAQ::JClient::JClient  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Default constructor. 
Definition at line 45 of file JClient.hh.
JLANG::JString start_command
 
 
 
 
◆ JClient() [2/2]
  
  
      
        
          | KM3NETDAQ::JClient::JClient  | 
          ( | 
          const std::string &  | 
          __name,  | 
         
        
           | 
           | 
          const std::string &  | 
          __hostname,  | 
         
        
           | 
           | 
          const std::string &  | 
          __start_command = ""  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inline   | 
  
 
Constructor. 
- Parameters
 - 
  
    | __name | name of client  | 
    | __hostname | host name  | 
    | __start_command | start command  | 
  
   
Definition at line 66 of file JClient.hh.
 
 
◆ start()
  
  
      
        
          | void KM3NETDAQ::JClient::start  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Start process. 
The start command is issued on the (remote) host. 
Definition at line 88 of file JClient.hh.
   93       if (start_command != 
"") {
 
   97         shell << start_command << endl;
 
The JShell clas can be used to interact with the shell via I/O streams.
 
static JShell & getInstance()
Get reference to unique instance of this class object.
 
JShell & flush(std::ostream &out=null)
Extracts characters from this shell and flush them to the given output stream until the prompt is rea...
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
 
 
 
◆ stop()
  
  
      
        
          | void KM3NETDAQ::JClient::stop  | 
          ( | 
          const int  | 
          signal = -9 | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Stop process. 
A kill command is issued on the (remote) host. To determine the PID for the kill command, the start command is compared to the output of a ps command on the (remote) host.
- Parameters
 - 
  
  
 
Definition at line 111 of file JClient.hh.
  116       if (start_command != 
"") {
 
  118         const string header  = 
"__header___";
 
  119         const string trailer = 
"__trailer__";
 
  123         os << 
"ssh " << hostname << 
' ' 
  125            << 
"echo" << 
' ' << header << 
";" 
  126            << 
"ps hax -o '%p %a'"     << 
";" 
  127            << 
"echo" << 
' ' << trailer
 
  132         shell << os.str() << endl;
 
  138         while (
getline(shell, buffer) && buffer.find(header)  == string::npos) {}
 
  142         while (
getline(shell, buffer) && buffer.find(trailer) == string::npos) {
 
  149           if (is >> pid && 
getline(is >> ws, buffer)) {
 
  150             if (start_command.find(buffer) != string::npos) {
 
  151               os << 
"ssh " << hostname << 
' ' 
  153                  << 
"kill " << signal << 
" " << pid << 
" </dev/null >&/dev/null" 
  161         if (os.str() != 
"") {
 
  162           shell << os.str() << endl;
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
 
 
 
 
◆ getName()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getName  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of run control client. 
- Returns
 - name 
 
Definition at line 174 of file JClient.hh.
 
 
◆ getHostname()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getHostname  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get host name of run control client. 
- Returns
 - host name 
 
Definition at line 185 of file JClient.hh.
 
 
◆ getFullName()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getFullName  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get full name of run control client. 
- Returns
 - full name 
 
Definition at line 196 of file JClient.hh.
 
 
◆ getStartCommand()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getStartCommand  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get start command of run control client. 
- Returns
 - name 
 
Definition at line 207 of file JClient.hh.
 
 
◆ isSleep()
  
  
      
        
          | bool KM3NETDAQ::JClient::isSleep  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check sleep mode. 
- Returns
 - true if sleep; else false 
 
Definition at line 218 of file JClient.hh.
 
 
◆ isActive()
  
  
      
        
          | bool KM3NETDAQ::JClient::isActive  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check active mode. 
- Returns
 - true if active; else false 
 
Definition at line 229 of file JClient.hh.
 
 
◆ isIgnore()
  
  
      
        
          | bool KM3NETDAQ::JClient::isIgnore  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check ignore mode. 
- Returns
 - true if ignore; else false 
 
Definition at line 240 of file JClient.hh.
 
 
◆ isIllegal()
  
  
      
        
          | bool KM3NETDAQ::JClient::isIllegal  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check illegal mode. 
- Returns
 - true if illegal; else false 
 
Definition at line 251 of file JClient.hh.
 
 
◆ update()
  
  
      
        
          | bool KM3NETDAQ::JClient::update  | 
          ( | 
          const JNET::JTag &  | 
          tag,  | 
         
        
           | 
           | 
          const std::string &  | 
          buffer  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inline   | 
  
 
Update client. 
The client parameters are updated according to the ControlHost tag and message.
- Parameters
 - 
  
  
 
- Returns
 - true if OK; else false 
 
Definition at line 265 of file JClient.hh.
  272         this->is_alive  = 
true;
 
  279         this->is_alive  = 
false;
 
  292         istringstream is(buffer);
 
  300           this->event_name = 
event.getName();
 
  301           this->event_info = 
event.getInfo();
 
  302           this->state_name = state;
 
Auxiliary class to specify white space character(s) in currect locale.
 
static const JTag DISPTAG_Born("Born")
 
static const JTag DISPTAG_Died("Died")
 
static const JNET::JTag RC_REPLY
 
static const std::string RUN_CONTROL_CLIENT
 
static const std::string TOKEN_DELIMETER
 
 
 
 
◆ getStatename()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getStatename  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of current state. 
- Returns
 - state name 
 
Definition at line 317 of file JClient.hh.
 
 
◆ getEventname()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getEventname  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of last event. 
- Returns
 - event name 
 
Definition at line 328 of file JClient.hh.
 
 
◆ getEventInfo()
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getEventInfo  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get event information. 
- Returns
 - event information 
 
Definition at line 339 of file JClient.hh.
 
 
◆ getAlive()
  
  
      
        
          | bool KM3NETDAQ::JClient::getAlive  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get alive status. 
- Returns
 - true if alive; else false 
 
Definition at line 350 of file JClient.hh.
 
 
◆ setAlive()
  
  
      
        
          | void KM3NETDAQ::JClient::setAlive  | 
          ( | 
          const bool  | 
          alive | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Set alive status. 
- Parameters
 - 
  
  
 
Definition at line 361 of file JClient.hh.
 
 
◆ getMode()
  
  
      
        
          | JMode KM3NETDAQ::JClient::getMode  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ setMode()
  
  
      
        
          | void KM3NETDAQ::JClient::setMode  | 
          ( | 
          const JMode  | 
          mode | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ getBorn()
  
  
      
        
          | int KM3NETDAQ::JClient::getBorn  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get born count. 
- Returns
 - number of times born 
 
Definition at line 394 of file JClient.hh.
 
 
◆ getDied()
  
  
      
        
          | int KM3NETDAQ::JClient::getDied  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get died count. 
- Returns
 - number of times died 
 
Definition at line 405 of file JClient.hh.
 
 
◆ configure()
  
  
      
        
          | void KM3NETDAQ::JClient::configure  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineprotected   | 
  
 
Configure client parameters. 
In this, the following tokens in the start command are substituted: $HOST$ by <host name>; $NAME$ by <process name>; $SERVER$ by JClient::SERVER; $LOGGER$ by JClient::LOGGER; $ARGS$ by part following last '/' in <process name>; 
Definition at line 465 of file JClient.hh.
  481       if (pos != string::npos) {
 
JString & replace(const char target, const char replacement, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace characters.
 
JString & trim()
Trim string.
 
std::string getFullName(const std::string &hostname, const std::string &name)
Get full name of run control client.
 
static const std::string CLIENTNAME_DELIMETER
 
 
 
 
◆ operator>>
  
  
      
        
          | std::istream& operator>>  | 
          ( | 
          std::istream &  | 
          in,  | 
         
        
           | 
           | 
          JClient &  | 
          client  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
friend   | 
  
 
Read client from input. 
- Parameters
 - 
  
  
 
- Returns
 - istream 
 
Definition at line 418 of file JClient.hh.
  421       in >> client.hostname;
 
  425         getline(
in >> std::ws, client.start_command);
 
virtual void clear()
Clear status of reader.
 
JSocketInputChannel_t in
reader for incoming messages
 
 
 
 
◆ operator<<
  
  
      
        
          | std::ostream& operator<<  | 
          ( | 
          std::ostream &  | 
          out,  | 
         
        
           | 
           | 
          const JClient &  | 
          client  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
friend   | 
  
 
Write client to output. 
- Parameters
 - 
  
  
 
- Returns
 - ostream 
 
Definition at line 443 of file JClient.hh.
  447       out << client.hostname;
 
  449       out << client.start_command;
 
JSocketNonblockingWriter out
writer for outgoing messages
 
 
 
 
◆ SERVER
  
  
      
        
          | std::string KM3NETDAQ::JClient::SERVER | 
         
       
   | 
  
static   | 
  
 
host name of message server 
- Author
 - mdejong 
 
Definition at line 32 of file JClient.hh.
 
 
◆ LOGGER
  
  
      
        
          | std::string KM3NETDAQ::JClient::LOGGER | 
         
       
   | 
  
static   | 
  
 
host name of message logger 
Definition at line 33 of file JClient.hh.
 
 
◆ name
  
  
      
        
          | std::string KM3NETDAQ::JClient::name | 
         
       
   | 
  
protected   | 
  
 
 
◆ hostname
  
  
      
        
          | std::string KM3NETDAQ::JClient::hostname | 
         
       
   | 
  
protected   | 
  
 
 
◆ start_command
◆ full_name
  
  
      
        
          | std::string KM3NETDAQ::JClient::full_name | 
         
       
   | 
  
protected   | 
  
 
 
◆ mode
  
  
      
        
          | JMode KM3NETDAQ::JClient::mode | 
         
       
   | 
  
protected   | 
  
 
 
◆ born
  
  
      
        
          | int KM3NETDAQ::JClient::born | 
         
       
   | 
  
protected   | 
  
 
 
◆ died
  
  
      
        
          | int KM3NETDAQ::JClient::died | 
         
       
   | 
  
protected   | 
  
 
 
◆ is_alive
  
  
      
        
          | bool KM3NETDAQ::JClient::is_alive | 
         
       
   | 
  
protected   | 
  
 
 
◆ state_name
  
  
      
        
          | std::string KM3NETDAQ::JClient::state_name | 
         
       
   | 
  
protected   | 
  
 
 
◆ event_name
  
  
      
        
          | std::string KM3NETDAQ::JClient::event_name | 
         
       
   | 
  
protected   | 
  
 
 
◆ event_info
  
  
      
        
          | std::string KM3NETDAQ::JClient::event_info | 
         
       
   | 
  
protected   | 
  
 
 
The documentation for this class was generated from the following files: