Client data structure.  
 More...
#include <JClient.hh>
Client data structure. 
Definition at line 27 of file JClient.hh.
 
Client modi. 
| Enumerator | 
|---|
| UNKNOWN  | 
 | 
| SLEEP  | 
 | 
| ACTIVE  | 
 | 
| IGNORE  | 
 | 
| ILLEGAL  | 
 | 
Definition at line 38 of file JClient.hh.
 
 
  
  
      
        
          | KM3NETDAQ::JClient::JClient  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Default constructor. 
Definition at line 44 of file JClient.hh.
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
JLANG::JString start_command
 
 
 
 
  
  
      
        
          | 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 65 of file JClient.hh.
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
JLANG::JString start_command
 
 
 
 
  
  
      
        
          | void KM3NETDAQ::JClient::start  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Start process. 
The start command is issued on the (remote) host. 
Definition at line 87 of file JClient.hh.
   92       if (start_command != 
"") {
 
   96         shell << start_command << endl;
 
static JShell & getInstance()
Get reference to unique instance of this class object. 
 
 
 
 
  
  
      
        
          | 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 110 of file JClient.hh.
  115       if (start_command != 
"") {
 
  117         const string header  = 
"__header___";
 
  118         const string trailer = 
"__trailer__";
 
  122         os << 
"ssh " << hostname << 
' ' 
  124            << 
"echo" << 
' ' << header << 
";" 
  125            << 
"ps hax -o '%p %a'"     << 
";" 
  126            << 
"echo" << 
' ' << trailer
 
  131         shell << os.str() << endl;
 
  137         while (
getline(shell, buffer) && buffer.find(header)  == string::npos) {}
 
  141         while (
getline(shell, buffer) && buffer.find(trailer) == string::npos) {
 
  148           if (is >> pid && 
getline(is >> ws, buffer)) {
 
  149             if (start_command.find(buffer) != string::npos) {
 
  150               os << 
"ssh " << hostname << 
' ' 
  152                  << 
"kill " << signal << 
" " << pid << 
" </dev/null >&/dev/null" 
  160         if (os.str() != 
"") {
 
  161           shell << os.str() << endl;
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
static JShell & getInstance()
Get reference to unique instance of this class object. 
 
 
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getName  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of run control client. 
- Returns
 - name 
 
Definition at line 173 of file JClient.hh.
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
 
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getHostname  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get host name of run control client. 
- Returns
 - host name 
 
Definition at line 184 of file JClient.hh.
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getFullName  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get full name of run control client. 
- Returns
 - full name 
 
Definition at line 195 of file JClient.hh.
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getStartCommand  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get start command of run control client. 
- Returns
 - name 
 
Definition at line 206 of file JClient.hh.
JLANG::JString start_command
 
 
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::isSleep  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check sleep mode. 
- Returns
 - true if sleep; else false 
 
Definition at line 217 of file JClient.hh.
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::isActive  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check active mode. 
- Returns
 - true if active; else false 
 
Definition at line 228 of file JClient.hh.
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::isIgnore  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check ignore mode. 
- Returns
 - true if ignore; else false 
 
Definition at line 239 of file JClient.hh.
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::isIllegal  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Check illegal mode. 
- Returns
 - true if illegal; else false 
 
Definition at line 250 of file JClient.hh.
 
 
  
  
      
        
          | 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 264 of file JClient.hh.
  271         this->is_alive  = 
true;
 
  278         this->is_alive  = 
false;
 
  291         istringstream 
is(buffer);
 
  299           this->event_name   = 
event.getName();
 
  300           this->event_number = 
event.getNumber();
 
  301           this->state_name   = state;
 
static const JTag DISPTAG_Died("Died")
 
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
static const std::string TOKEN_DELIMETER
 
static const std::string RUN_CONTROL_CLIENT
 
static const JNET::JTag RC_REPLY
 
static const JTag DISPTAG_Born("Born")
 
Auxiliary class to specify white space character(s) in currect locale. 
 
 
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getStatename  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of current state. 
- Returns
 - state name 
 
Definition at line 316 of file JClient.hh.
 
 
  
  
      
        
          | const std::string& KM3NETDAQ::JClient::getEventname  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get name of last event. 
- Returns
 - event name 
 
Definition at line 327 of file JClient.hh.
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::getEventnumber  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get number of last event. 
- Returns
 - event number 
 
Definition at line 338 of file JClient.hh.
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::getAlive  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get alive status. 
- Returns
 - true if alive; else false 
 
Definition at line 349 of file JClient.hh.
 
 
  
  
      
        
          | void KM3NETDAQ::JClient::setAlive  | 
          ( | 
          const bool  | 
          alive | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Set alive status. 
- Parameters
 - 
  
  
 
Definition at line 360 of file JClient.hh.
 
 
  
  
      
        
          | JMode KM3NETDAQ::JClient::getMode  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | void KM3NETDAQ::JClient::setMode  | 
          ( | 
          const JMode  | 
          mode | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::getBorn  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get born count. 
- Returns
 - number of times born 
 
Definition at line 393 of file JClient.hh.
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::getDied  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get died count. 
- Returns
 - number of times died 
 
Definition at line 404 of file JClient.hh.
 
 
  
  
      
        
          | 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 464 of file JClient.hh.
  480       if (pos != string::npos) {
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null if do_usage *then usage $script fi SERVER
 
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable SERVER localhost define_variable LOGGER if do_usage *then usage $script[host[local file]] fi case set_variable LOGGER
 
JLANG::JString start_command
 
JString & trim()
Trim string. 
 
static const std::string CLIENTNAME_DELIMETER
 
JString & replace(const char target, const char replacement, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace characters. 
 
std::string getFullName(const std::string &hostname, const std::string &name)
Get full name of run control client. 
 
 
 
 
  
  
      
        
          | std::istream& operator>>  | 
          ( | 
          std::istream &  | 
          in,  | 
         
        
           | 
           | 
          JClient &  | 
          client  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
friend   | 
  
 
Read client from input. 
- Parameters
 - 
  
  
 
- Returns
 - istream 
 
Definition at line 417 of file JClient.hh.
then echo Test string reversed by client(hit< return > to continue)." JProcess -c "JEcho-r" -C fi if (( 1 ))
 
JSocketInputChannel_t in
reader for incoming messages 
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
virtual void clear()
Clear status of reader. 
 
 
 
 
  
  
      
        
          | std::ostream& operator<<  | 
          ( | 
          std::ostream &  | 
          out,  | 
         
        
           | 
           | 
          const JClient &  | 
          client  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
friend   | 
  
 
Write client to output. 
- Parameters
 - 
  
  
 
- Returns
 - ostream 
 
Definition at line 442 of file JClient.hh.
JSocketNonblockingWriter out
writer for outgoing messages 
 
then echo Test string reversed by client(hit< return > to continue)." JProcess -c "JEcho-r" -C fi if (( 1 ))
 
 
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::SERVER | 
         
       
   | 
  
static   | 
  
 
host name of message server 
- Author
 - mdejonghost name of message server 
 
Definition at line 31 of file JClient.hh.
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::LOGGER | 
         
       
   | 
  
static   | 
  
 
host name of message logger 
Definition at line 32 of file JClient.hh.
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::name | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::hostname | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::full_name | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | JMode KM3NETDAQ::JClient::mode | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::born | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::died | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | bool KM3NETDAQ::JClient::is_alive | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::state_name | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | std::string KM3NETDAQ::JClient::event_name | 
         
       
   | 
  
protected   | 
  
 
 
  
  
      
        
          | int KM3NETDAQ::JClient::event_number | 
         
       
   | 
  
protected   | 
  
 
 
The documentation for this class was generated from the following files: