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.
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.
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.
91 if (start_command !=
"") {
The JShell clas can be used to interact with the shell via I/O streams.
JLANG::JString start_command
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 109 of file JClient.hh.
114 if (start_command !=
"") {
116 const string header =
"__header___";
117 const string trailer =
"__trailer__";
121 os <<
"ssh " << hostname <<
' '
123 <<
"echo" <<
' ' << header <<
";"
124 <<
"ps hax -o '%p %a'" <<
";"
125 <<
"echo" <<
' ' << trailer
130 shell << os.str() << endl;
136 while (
getline(shell, buffer) && buffer.find(header) == string::npos) {}
140 while (
getline(shell, buffer) && buffer.find(trailer) == string::npos) {
147 if (is >> pid &&
getline(is >> ws, buffer)) {
148 if (start_command.find(buffer) != string::npos) {
149 os <<
"ssh " << hostname <<
' '
151 <<
"kill " << signal <<
" " << pid <<
" </dev/null >&/dev/null"
159 if (os.str() !=
"") {
160 shell << os.str() << endl;
The JShell clas can be used to interact with the shell via I/O streams.
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 172 of file JClient.hh.
const std::string& KM3NETDAQ::JClient::getHostname |
( |
| ) |
const |
|
inline |
Get host name of run control client.
- Returns
- host name
Definition at line 183 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 194 of file JClient.hh.
const std::string& KM3NETDAQ::JClient::getStartCommand |
( |
| ) |
const |
|
inline |
Get start command of run control client.
- Returns
- name
Definition at line 205 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 216 of file JClient.hh.
bool KM3NETDAQ::JClient::isActive |
( |
| ) |
const |
|
inline |
Check active mode.
- Returns
- true if active; else false
Definition at line 227 of file JClient.hh.
bool KM3NETDAQ::JClient::isIgnore |
( |
| ) |
const |
|
inline |
Check ignore mode.
- Returns
- true if ignore; else false
Definition at line 238 of file JClient.hh.
bool KM3NETDAQ::JClient::isIllegal |
( |
| ) |
const |
|
inline |
Check illegal mode.
- Returns
- true if illegal; else false
Definition at line 249 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 263 of file JClient.hh.
270 this->is_alive =
true;
277 this->is_alive =
false;
290 istringstream is(buffer);
292 const locale loc(is.getloc(),
new JWhiteSpacesFacet(is.getloc(),
TOKEN_DELIMETER));
298 this->event_name =
event.getName();
299 this->event_number =
event.getNumber();
300 this->state_name = state;
static const JTag DISPTAG_Died("Died")
Structure to store the ToT mean and standard deviation of the hits produced by a nanobeacon in a sour...
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 315 of file JClient.hh.
const std::string& KM3NETDAQ::JClient::getEventname |
( |
| ) |
const |
|
inline |
Get name of last event.
- Returns
- event name
Definition at line 326 of file JClient.hh.
int KM3NETDAQ::JClient::getEventnumber |
( |
| ) |
const |
|
inline |
Get number of last event.
- Returns
- event number
Definition at line 337 of file JClient.hh.
bool KM3NETDAQ::JClient::getAlive |
( |
| ) |
const |
|
inline |
Get alive status.
- Returns
- true if alive; else false
Definition at line 348 of file JClient.hh.
void KM3NETDAQ::JClient::setAlive |
( |
const bool |
alive | ) |
|
|
inline |
Set alive status.
- Parameters
-
Definition at line 359 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 392 of file JClient.hh.
int KM3NETDAQ::JClient::getDied |
( |
| ) |
const |
|
inline |
Get died count.
- Returns
- number of times died
Definition at line 403 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 463 of file JClient.hh.
479 if (pos != string::npos) {
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 416 of file JClient.hh.
419 in >> client.hostname;
423 getline(
in >> std::ws, client.start_command);
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 441 of file JClient.hh.
445 out << client.hostname;
447 out << client.start_command;
JSocketNonblockingWriter out
writer for outgoing messages
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: