XrdCmsClient Class Reference

#include <XrdCmsClient.hh>

Inheritance diagram for XrdCmsClient:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Persona { amLocal, amRemote, amTarget }

Public Member Functions

virtual void Added (const char *path, int Pend=0)
virtual int Configure (const char *cfn, char *Parms, XrdOucEnv *EnvInfo)=0
virtual int Forward (XrdOucErrInfo &Resp, const char *cmd, const char *arg1=0, const char *arg2=0, XrdOucEnv *Env1=0, XrdOucEnv *Env2=0)
virtual int isRemote ()
virtual int Locate (XrdOucErrInfo &Resp, const char *path, int flags, XrdOucEnv *Info=0)=0
virtual XrdOucTListManagers ()
virtual int Prepare (XrdOucErrInfo &Resp, XrdSfsPrep &pargs, XrdOucEnv *Info=0)
virtual void Removed (const char *path)
virtual void Resume (int Perm=1)
virtual void Suspend (int Perm=1)
virtual int Resource (int n)
virtual int Reserve (int n=1)
virtual int Release (int n=1)
virtual int Space (XrdOucErrInfo &Resp, const char *path, XrdOucEnv *Info=0)=0
 XrdCmsClient (Persona acting)
virtual ~XrdCmsClient ()
 Destructor.

Protected Attributes

Persona myPersona

Member Enumeration Documentation

Constructor

Parameters:
acting The type of function this object is performing.
Enumerator:
amLocal 

Not affiliated with a cluster.

amRemote 

Am a manager an issue redirects.

amTarget 

Am a server an field redirects.


Constructor & Destructor Documentation

XrdCmsClient::XrdCmsClient ( Persona  acting  )  [inline]
virtual XrdCmsClient::~XrdCmsClient (  )  [inline, virtual]

Destructor.


Member Function Documentation

virtual void XrdCmsClient::Added ( const char *  path,
int  Pend = 0 
) [inline, virtual]

Notify the cms of a newly added file or a file whose state has changed on a data server node.

Parameters:
path The logical file name.
Pend When true, the file is scheduled to be present in the future (e.g. copied in).

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdCmsRedirLocal::Added().

virtual int XrdCmsClient::Configure ( const char *  cfn,
char *  Parms,
XrdOucEnv EnvInfo 
) [pure virtual]

Configure the client object.

Parameters:
cfn The configuration file name.
Parms Any parameters specified in the cmslib directive. If none, the pointer may be null.
EnvInfo Environmental information of the caller.
Returns:
Success !0 Failure =0

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

virtual int XrdCmsClient::Forward ( XrdOucErrInfo Resp,
const char *  cmd,
const char *  arg1 = 0,
const char *  arg2 = 0,
XrdOucEnv Env1 = 0,
XrdOucEnv Env2 = 0 
) [inline, virtual]

Relay a meta-operation to all nodes in the cluster.

This method is only used on manager nodes and is enabled by the ofs.forward directive.

Parameters:
Resp Object where messages are to be returned.
cmd The operation being performed (see table below). If it starts with a '+' then a response (2way) is needed. Otherwise, a best-effort is all that is all that is required and success can always be returned.
arg1 1st argument to cmd.
arg2 2nd argument to cmd, which may be null if none exists.
Env1 Associated environmental information for arg1 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).
Env2 Associated environmental information for arg2 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).

cmd arg1 arg2 cmd arg1 arg2 -------- ------ ------ -------- ------ ------ [+]chmod <path> <mode o> [+]rmdir <path> 0 [+]mkdir <path> <mode o> [+]mv <oldp> <newp> [+]mkpath <path> <mode o> [+]trunc <path> <size lld> [+]rm <path> 0

Returns:
As explained under "return conventions".

Reimplemented in XrdCmsFinderRMT, and XrdCmsRedirLocal.

Referenced by XrdCmsRedirLocal::Forward().

virtual int XrdCmsClient::isRemote (  )  [inline, virtual]

Check if this client is configured for a manager node.

Returns:
!0 Yes, configured as a manager. =0 No.

Reimplemented in XrdCmsRedirLocal.

References amRemote, and myPersona.

Referenced by XrdCmsRedirLocal::isRemote().

virtual int XrdCmsClient::Locate ( XrdOucErrInfo Resp,
const char *  path,
int  flags,
XrdOucEnv Info = 0 
) [pure virtual]

Retrieve file location information.

Parameters:
Resp Object where message or response is to be returned.
path The logical path whise location is wanted.
flags One or more of the following:

SFS_O_LOCATE - return the list of servers that have the file. Otherwise, redirect to the best server for the file. SFS_O_NOWAIT - w/ SFS_O_LOCATE return readily available info. Otherwise, select online files only. SFS_O_CREAT - file will be created. SFS_O_NOWAIT - select server if file is online. SFS_O_REPLICA - a replica of the file will be made. SFS_O_STAT - only stat() information wanted. SFS_O_TRUNC - file will be truncated.

For any the the above, additional flags are passed: SFS_O_META - data will not change (inode operation only) SFS_O_RESET - reset cached info and recaculate the location(s). SFS_O_WRONLY - file will be only written (o/w RDWR or RDONLY). SFS_O_RDWR - file may be read and written (o/w WRONLY or RDONLY).

Parameters:
Info Associated environmental information for arg2 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).
Returns:
As explained under "return conventions".

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

virtual XrdOucTList* XrdCmsClient::Managers (  )  [inline, virtual]

Obtain the list of cmsd's being used by a manager node along with their associated index numbers, origin 1.

Returns:
The list of cmsd's being used. The list is considered permanent and is not deleted.

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdCmsRedirLocal::Managers().

virtual int XrdCmsClient::Prepare ( XrdOucErrInfo Resp,
XrdSfsPrep pargs,
XrdOucEnv Info = 0 
) [inline, virtual]

Start the preparation of a file for future processing.

Parameters:
Resp Object where message or response is to be returned.
pargs Information on which and how to prepare the file.
Info Associated environmental information.
Returns:
As explained under "return conventions".

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

References Info.

Referenced by XrdCmsRedirLocal::Prepare().

virtual int XrdCmsClient::Release ( int  n = 1  )  [inline, virtual]

Increases the amount of resource available. When transitioning from a a non-positive to a positive resource amount, perform a resume so that additional clients may be dispatched to this data server.

Parameters:
n The value to add to the resources available (default 1). The total amount is capped by the amount specified by Resource().
Returns:
The amount of resource left.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdSsiCms::Release(), and XrdCmsRedirLocal::Release().

virtual void XrdCmsClient::Removed ( const char *  path  )  [inline, virtual]

Notify the cmsd that a file or directory has been deleted. It is only called called on a data server node.

Parameters:
path The logical file name that was removed.

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdCmsRedirLocal::Removed().

virtual int XrdCmsClient::Reserve ( int  n = 1  )  [inline, virtual]

Decreases the amount of resources available. When the available resources becomes non-positive, perform a temporary suspend to prevent additional clients from being dispatched to this data server.

Parameters:
n The value by which resources are decreased (default 1).
Returns:
The amount of resource left.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdSsiCms::Reserve(), and XrdCmsRedirLocal::Reserve().

virtual int XrdCmsClient::Resource ( int  n  )  [inline, virtual]

Enables the Reserve() & Release() methods.

Parameters:
n a positive integer that specifies the amount of resource units that are available. It may be reset at any time.
Returns:
The previous resource value. This first call returns 0.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdSsiCms::Resource(), and XrdCmsRedirLocal::Resource().

virtual void XrdCmsClient::Resume ( int  Perm = 1  )  [inline, virtual]

Resume service after a suspension.

Parameters:
Perm When true the resume persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdSsiCms::Resume(), and XrdCmsRedirLocal::Resume().

virtual int XrdCmsClient::Space ( XrdOucErrInfo Resp,
const char *  path,
XrdOucEnv Info = 0 
) [pure virtual]

Obtain the overall space usage of a cluster. Called only on manager nodes.

Parameters:
Resp Object to hold response or error message.
path Associated logical path for the space request.
Info Associated cgi information for path.
Returns:
Space information as defined by the response to kYR_statfs. For a typical implementation see XrdCmsNode::do_StatFS().

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

virtual void XrdCmsClient::Suspend ( int  Perm = 1  )  [inline, virtual]

Suspend service.

Parameters:
Perm When true the suspend persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdSsiCms::Suspend(), and XrdCmsRedirLocal::Suspend().


Member Data Documentation

Referenced by isRemote().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 19 Oct 2019 for xrootd by  doxygen 1.6.1