xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
XrdSsiServReal Class Reference

#include <XrdSsiServReal.hh>

Inheritance diagram for XrdSsiServReal:
Inheritance graph
[legend]
Collaboration diagram for XrdSsiServReal:
Collaboration graph
[legend]

Public Member Functions

void ProcessRequest (XrdSsiRequest &reqRef, XrdSsiResource &resRef)
 Process a request; client-side or server-side. More...
 
void Recycle (XrdSsiSessReal *sObj, bool reuse)
 
bool Stop (bool immed=false)
 Stop the client-side service. This is never called server-side. More...
 
void StopReuse (const char *resKey)
 
 XrdSsiServReal (const char *contact, int hObj)
 
 ~XrdSsiServReal ()
 
- Public Member Functions inherited from XrdSsiService
int GetVersion ()
 
virtual bool Attach (XrdSsiErrInfo &eInfo, const std::string &handle, XrdSsiRequest &reqRef, XrdSsiResource *resP=0)
 Attach to a backgrounded request. More...
 
virtual bool Prepare (XrdSsiErrInfo &eInfo, const XrdSsiResource &rDesc)
 Prepare for processing subsequent resource request. More...
 
 XrdSsiService ()
 Constructor. More...
 

Private Member Functions

XrdSsiSessRealAlloc (const char *sName, int uent, bool hold)
 
bool GenURL (XrdSsiResource *rP, char *buff, int blen, int uEnt)
 
bool ResReuse (XrdSsiRequest &reqRef, XrdSsiResource &resRef, std::string &resKey)
 

Private Attributes

std::map< std::string,
XrdSsiSessReal * > 
resCache
 
XrdSysMutex rcMutex
 
char * manNode
 
XrdSysMutex myMutex
 
XrdSsiSessRealfreeSes
 
int freeCnt
 
int freeMax
 
int actvSes
 
bool doStop
 

Additional Inherited Members

- Static Public Attributes inherited from XrdSsiService
static const int SsiVersion = 0x00020000
 
- Protected Member Functions inherited from XrdSsiService
virtual ~XrdSsiService ()
 Destructor. The service object cannot be explicitly deleted. Use Stop(). More...
 

Constructor & Destructor Documentation

XrdSsiServReal::XrdSsiServReal ( const char *  contact,
int  hObj 
)
inline
XrdSsiServReal::~XrdSsiServReal ( )

Member Function Documentation

XrdSsiSessReal* XrdSsiServReal::Alloc ( const char *  sName,
int  uent,
bool  hold 
)
private
bool XrdSsiServReal::GenURL ( XrdSsiResource rP,
char *  buff,
int  blen,
int  uEnt 
)
private
void XrdSsiServReal::ProcessRequest ( XrdSsiRequest reqRef,
XrdSsiResource resRef 
)
virtual

Process a request; client-side or server-side.

When a client calls ProcessRequest() the same method is called server-side with the same parameters that the client specified except for timeOut which is always set to zero server-side.

Parameters
reqRefReference to the Request object that describes the request.
resRefReference to the Resource object that describes the resource that the request will be using.
Returns
All results are returned via the request object callback methods. For background queries, the XrdSsiRequest::ProcessResponse() is called with a response type of isHandle when the request is handed off to the endpoint for execution (see XrdSsiRequest::SetDetachTTL).

Implements XrdSsiService.

void XrdSsiServReal::Recycle ( XrdSsiSessReal sObj,
bool  reuse 
)
bool XrdSsiServReal::ResReuse ( XrdSsiRequest reqRef,
XrdSsiResource resRef,
std::string &  resKey 
)
private
bool XrdSsiServReal::Stop ( bool  immed = false)
virtual

Stop the client-side service. This is never called server-side.

Parameters
immedWhen true, the service is only stopped if here are no active requests. Otherwise, after all requests have finished. the service object is deleted.
Returns
true Service has been stopped. Once all requests have been completed, the service object will be deleted.
false Service cannot be stopped because there are still active foreground requests and the immed parameter was true.

Reimplemented from XrdSsiService.

void XrdSsiServReal::StopReuse ( const char *  resKey)

Member Data Documentation

int XrdSsiServReal::actvSes
private
bool XrdSsiServReal::doStop
private
int XrdSsiServReal::freeCnt
private
int XrdSsiServReal::freeMax
private
XrdSsiSessReal* XrdSsiServReal::freeSes
private
char* XrdSsiServReal::manNode
private
XrdSysMutex XrdSsiServReal::myMutex
private
XrdSysMutex XrdSsiServReal::rcMutex
private
std::map<std::string, XrdSsiSessReal *> XrdSsiServReal::resCache
private

The documentation for this class was generated from the following file: