Definition at line 43 of file XrdProofdClient.h.
Public Member Functions | |
XrdProofdClient (XrdProofUI ui, bool master, bool changeown, XrdSysError *edest, const char *tmp, int rtime) | |
Constructor. | |
virtual | ~XrdProofdClient () |
Destructor. | |
const char * | AdminPath () const |
void | Broadcast (const char *msg) |
Broadcast message 'msg' to the connected clients. | |
void | EraseServer (int psid) |
Erase server with id psid from the list. | |
XrdOucString | ExportSessions (XrdOucString &emsg, XrdProofdResponse *r=0) |
Return a string describing the existing sessions. | |
int | GetClientID (XrdProofdProtocol *p) |
Get next free client ID. | |
XrdProofdProofServ * | GetFreeServObj () |
Get next free server ID. | |
XrdProofdProtocol * | GetProtocol (int ic) |
Return protocol attached to client slot at 'ic'. | |
XrdProofdProofServ * | GetServer (int psid) |
Get from the vector server instance with ID psid. | |
XrdProofdProofServ * | GetServer (XrdProofdProtocol *p) |
Get server instance connected via 'p'. | |
XrdProofdProofServ * | GetServObj (int id) |
Get server at 'id'. If needed, increase the vector size. | |
int | GetTopServers () |
Return the number of valid proofserv topmaster sessions in the list. | |
const char * | Group () const |
bool | IsValid () const |
bool | Match (const char *usr, const char *grp=0) |
return TRUE if this instance matches 'id' (and 'grp', if defined) | |
XrdSysRecMutex * | Mutex () const |
int | ReserveClientID (int cid) |
Reserve a client ID. | |
int | ResetClientSlot (int ic) |
Reset slot at 'ic'. | |
void | ResetSessions () |
Reset this instance. | |
XrdROOT * | ROOT () const |
XrdProofdSandbox * | Sandbox () const |
int | SetClientID (int cid, XrdProofdProtocol *p) |
Set slot cid to instance 'p'. | |
void | SetGroup (const char *g) |
void | SetROOT (XrdROOT *r) |
void | SetValid (bool valid=1) |
int | Size () const |
void | SkipSessionsCheck (std::list< XrdProofdProofServ * > *active, XrdOucString &emsg, XrdProofdResponse *r=0) |
Skip the next sessions status check. | |
void | TerminateSessions (int srvtype, XrdProofdProofServ *ref, const char *msg, XrdProofdPipe *pipe, bool changeown) |
Terminate client sessions; IDs of signalled processes are added to sigpid. | |
int | Touch (bool reset=0) |
Send a touch the connected clients: this will remotely touch the associated TSocket instance and schedule an asynchronous touch of the client admin file. | |
int | TrimSessionDirs () |
XrdProofUI | UI () const |
const char * | User () const |
bool | VerifySession (XrdProofdProofServ *xps, XrdProofdResponse *r=0) |
Quick verification of session 'xps' to avoid attaching clients to non responding sessions. | |
Private Attributes | |
XrdOucString | fAdminPath |
bool | fAskedToTouch |
bool | fChangeOwn |
std::vector< XrdClientID * > | fClients |
bool | fIsValid |
XrdSysRecMutex | fMutex |
std::vector< XrdProofdProofServ * > | fProofServs |
int | fReconnectTimeOut |
XrdROOT * | fROOT |
XrdProofdSandbox | fSandbox |
XrdProofUI | fUI |
#include <XrdProofdClient.h>
XrdProofdClient::XrdProofdClient | ( | XrdProofUI | ui, |
bool | master, | ||
bool | changeown, | ||
XrdSysError * | edest, | ||
const char * | tmp, | ||
int | rtime | ||
) |
Constructor.
Definition at line 37 of file XrdProofdClient.cxx.
|
virtual |
Destructor.
Definition at line 71 of file XrdProofdClient.cxx.
|
inline |
Definition at line 96 of file XrdProofdClient.h.
void XrdProofdClient::Broadcast | ( | const char * | msg | ) |
Broadcast message 'msg' to the connected clients.
Definition at line 448 of file XrdProofdClient.cxx.
void XrdProofdClient::EraseServer | ( | int | psid | ) |
Erase server with id psid from the list.
Definition at line 332 of file XrdProofdClient.cxx.
XrdOucString XrdProofdClient::ExportSessions | ( | XrdOucString & | emsg, |
XrdProofdResponse * | r = 0 |
||
) |
Return a string describing the existing sessions.
Definition at line 619 of file XrdProofdClient.cxx.
int XrdProofdClient::GetClientID | ( | XrdProofdProtocol * | p | ) |
Get next free client ID.
If none is found, increase the vector size and get the first new one
Definition at line 93 of file XrdProofdClient.cxx.
XrdProofdProofServ * XrdProofdClient::GetFreeServObj | ( | ) |
Get next free server ID.
If none is found, increase the vector size and get the first new one
Definition at line 182 of file XrdProofdClient.cxx.
XrdProofdProtocol * XrdProofdClient::GetProtocol | ( | int | ic | ) |
Return protocol attached to client slot at 'ic'.
Definition at line 400 of file XrdProofdClient.cxx.
XrdProofdProofServ * XrdProofdClient::GetServer | ( | int | psid | ) |
Get from the vector server instance with ID psid.
Definition at line 320 of file XrdProofdClient.cxx.
XrdProofdProofServ * XrdProofdClient::GetServer | ( | XrdProofdProtocol * | p | ) |
Get server instance connected via 'p'.
Definition at line 296 of file XrdProofdClient.cxx.
XrdProofdProofServ * XrdProofdClient::GetServObj | ( | int | id | ) |
Get server at 'id'. If needed, increase the vector size.
Definition at line 234 of file XrdProofdClient.cxx.
int XrdProofdClient::GetTopServers | ( | ) |
Return the number of valid proofserv topmaster sessions in the list.
Definition at line 356 of file XrdProofdClient.cxx.
|
inline |
Definition at line 51 of file XrdProofdClient.h.
|
inline |
Definition at line 53 of file XrdProofdClient.h.
bool XrdProofdClient::Match | ( | const char * | usr, |
const char * | grp = 0 |
||
) |
return TRUE if this instance matches 'id' (and 'grp', if defined)
Definition at line 78 of file XrdProofdClient.cxx.
|
inline |
Definition at line 55 of file XrdProofdClient.h.
Reserve a client ID.
If none is found, increase the vector size and performe the needed initializations
Definition at line 145 of file XrdProofdClient.cxx.
Reset slot at 'ic'.
Definition at line 380 of file XrdProofdClient.cxx.
void XrdProofdClient::ResetSessions | ( | ) |
Reset this instance.
Definition at line 693 of file XrdProofdClient.cxx.
|
inline |
Definition at line 56 of file XrdProofdClient.h.
|
inline |
Definition at line 57 of file XrdProofdClient.h.
int XrdProofdClient::SetClientID | ( | int | cid, |
XrdProofdProtocol * | p | ||
) |
Set slot cid to instance 'p'.
Definition at line 421 of file XrdProofdClient.cxx.
|
inline |
Definition at line 85 of file XrdProofdClient.h.
|
inline |
Definition at line 86 of file XrdProofdClient.h.
|
inline |
Definition at line 88 of file XrdProofdClient.h.
|
inline |
Definition at line 90 of file XrdProofdClient.h.
void XrdProofdClient::SkipSessionsCheck | ( | std::list< XrdProofdProofServ * > * | active, |
XrdOucString & | emsg, | ||
XrdProofdResponse * | r = 0 |
||
) |
Skip the next sessions status check.
This is used, for example, when somebody has shown interest in these sessions to give more time for the reconnection. If active is defined, the list of active sessions is filled.
Definition at line 585 of file XrdProofdClient.cxx.
void XrdProofdClient::TerminateSessions | ( | int | srvtype, |
XrdProofdProofServ * | ref, | ||
const char * | msg, | ||
XrdProofdPipe * | pipe, | ||
bool | changeown | ||
) |
Terminate client sessions; IDs of signalled processes are added to sigpid.
Definition at line 646 of file XrdProofdClient.cxx.
Send a touch the connected clients: this will remotely touch the associated TSocket instance and schedule an asynchronous touch of the client admin file.
This request is only sent once per client: this is controlled by the flag fAskedToTouch, whcih can reset to FALSE by calling this function with reset TRUE. Return 0 if the request is sent or if asked to reset. Retunn 1 if the request was already sent.
Definition at line 482 of file XrdProofdClient.cxx.
|
inline |
Definition at line 94 of file XrdProofdClient.h.
|
inline |
Definition at line 58 of file XrdProofdClient.h.
|
inline |
Definition at line 52 of file XrdProofdClient.h.
bool XrdProofdClient::VerifySession | ( | XrdProofdProofServ * | xps, |
XrdProofdResponse * | r = 0 |
||
) |
Quick verification of session 'xps' to avoid attaching clients to non responding sessions.
We do here a sort of loose ping. Return true is responding, false otherwise.
Definition at line 517 of file XrdProofdClient.cxx.
|
private |
Definition at line 112 of file XrdProofdClient.h.
|
private |
Definition at line 104 of file XrdProofdClient.h.
|
private |
Definition at line 102 of file XrdProofdClient.h.
|
private |
Definition at line 115 of file XrdProofdClient.h.
|
private |
Definition at line 103 of file XrdProofdClient.h.
|
private |
Definition at line 100 of file XrdProofdClient.h.
|
private |
Definition at line 114 of file XrdProofdClient.h.
|
private |
Definition at line 105 of file XrdProofdClient.h.
|
private |
Definition at line 108 of file XrdProofdClient.h.
|
private |
Definition at line 110 of file XrdProofdClient.h.
|
private |
Definition at line 107 of file XrdProofdClient.h.