xrootd
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
XrdCl::FileSystem Class Reference

Send file/filesystem queries to an XRootD cluster. More...

#include <XrdClFileSystem.hh>

Collaboration diagram for XrdCl::FileSystem:
Collaboration graph
[legend]

Public Types

typedef std::vector< LocationInfoLocationList
 Location list. More...
 

Public Member Functions

 FileSystem (const URL &url, bool enablePlugIns=true)
 
 ~FileSystem ()
 Destructor. More...
 
XRootDStatus Locate (const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Locate (const std::string &path, OpenFlags::Flags flags, LocationInfo *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus DeepLocate (const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus DeepLocate (const std::string &path, OpenFlags::Flags flags, LocationInfo *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Mv (const std::string &source, const std::string &dest, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Mv (const std::string &source, const std::string &dest, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Query (QueryCode::Code queryCode, const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Query (QueryCode::Code queryCode, const Buffer &arg, Buffer *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Truncate (const std::string &path, uint64_t size, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Truncate (const std::string &path, uint64_t size, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Rm (const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Rm (const std::string &path, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus MkDir (const std::string &path, MkDirFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus MkDir (const std::string &path, MkDirFlags::Flags flags, Access::Mode mode, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus RmDir (const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus RmDir (const std::string &path, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus ChMod (const std::string &path, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus ChMod (const std::string &path, Access::Mode mode, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Ping (ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Ping (uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Stat (const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Stat (const std::string &path, StatInfo *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus StatVFS (const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus StatVFS (const std::string &path, StatInfoVFS *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Protocol (ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Protocol (ProtocolInfo *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus DirList (const std::string &path, DirListFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus DirList (const std::string &path, DirListFlags::Flags flags, DirectoryList *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus SendInfo (const std::string &info, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus SendInfo (const std::string &info, Buffer *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Prepare (const std::vector< std::string > &fileList, PrepareFlags::Flags flags, uint8_t priority, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
XRootDStatus Prepare (const std::vector< std::string > &fileList, PrepareFlags::Flags flags, uint8_t priority, Buffer *&response, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
 
bool SetProperty (const std::string &name, const std::string &value)
 
bool GetProperty (const std::string &name, std::string &value) const
 

Private Member Functions

 FileSystem (const FileSystem &other)
 
FileSystemoperator= (const FileSystem &other)
 
Status Send (Message *msg, ResponseHandler *handler, MessageSendParams &params)
 
void AssignLoadBalancer (const URL &url)
 
void Lock ()
 
void UnLock ()
 

Private Attributes

XrdSysMutex pMutex
 
bool pLoadBalancerLookupDone
 
bool pFollowRedirects
 
URLpUrl
 
FileSystemPlugIn * pPlugIn
 

Friends

class AssignLBHandler
 
class ForkHandler
 

Detailed Description

Send file/filesystem queries to an XRootD cluster.

Member Typedef Documentation

◆ LocationList

Location list.

Constructor & Destructor Documentation

◆ FileSystem() [1/2]

XrdCl::FileSystem::FileSystem ( const URL url,
bool  enablePlugIns = true 
)

Constructor

Parameters
urlURL of the entry-point server to be contacted
enablePlugInsenable the plug-in mechanism for this object

◆ ~FileSystem()

XrdCl::FileSystem::~FileSystem ( )

Destructor.

◆ FileSystem() [2/2]

XrdCl::FileSystem::FileSystem ( const FileSystem other)
private

Member Function Documentation

◆ AssignLoadBalancer()

void XrdCl::FileSystem::AssignLoadBalancer ( const URL url)
private

◆ ChMod() [1/2]

XRootDStatus XrdCl::FileSystem::ChMod ( const std::string &  path,
Access::Mode  mode,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Change access mode on a directory or a file - async

Parameters
pathfile/directory path
modeaccess mode, or'd Access::Mode
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ ChMod() [2/2]

XRootDStatus XrdCl::FileSystem::ChMod ( const std::string &  path,
Access::Mode  mode,
uint16_t  timeout = 0 
)

Change access mode on a directory or a file - sync

Parameters
pathfile/directory path
modeaccess mode, or'd Access::Mode
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ DeepLocate() [1/2]

XRootDStatus XrdCl::FileSystem::DeepLocate ( const std::string &  path,
OpenFlags::Flags  flags,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Locate a file, recursively locate all disk servers - async

Parameters
pathpath to the file to be located
flagssome of the OpenFlags::Flags
handlerhandler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ DeepLocate() [2/2]

XRootDStatus XrdCl::FileSystem::DeepLocate ( const std::string &  path,
OpenFlags::Flags  flags,
LocationInfo *&  response,
uint16_t  timeout = 0 
)

Locate a file, recursively locate all disk servers - sync

Parameters
pathpath to the file to be located
flagssome of the OpenFlags::Flags
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ DirList() [1/2]

XRootDStatus XrdCl::FileSystem::DirList ( const std::string &  path,
DirListFlags::Flags  flags,
ResponseHandler handler,
uint16_t  timeout = 0 
)

List entries of a directory - async

Parameters
pathdirectory path
flagscurrently unused
handlerhandler to be notified when the response arrives, the response parameter will hold a DirectoryList object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ DirList() [2/2]

XRootDStatus XrdCl::FileSystem::DirList ( const std::string &  path,
DirListFlags::Flags  flags,
DirectoryList *&  response,
uint16_t  timeout = 0 
)

List entries of a directory - sync

Parameters
pathdirectory path
flagsDirListFlags
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ GetProperty()

bool XrdCl::FileSystem::GetProperty ( const std::string &  name,
std::string &  value 
) const

Get filesystem property

See also
FileSystem::SetProperty for property list

◆ Locate() [1/2]

XRootDStatus XrdCl::FileSystem::Locate ( const std::string &  path,
OpenFlags::Flags  flags,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Locate a file - async

Parameters
pathpath to the file to be located
flagssome of the OpenFlags::Flags
handlerhandler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Locate() [2/2]

XRootDStatus XrdCl::FileSystem::Locate ( const std::string &  path,
OpenFlags::Flags  flags,
LocationInfo *&  response,
uint16_t  timeout = 0 
)

Locate a file - sync

Parameters
pathpath to the file to be located
flagssome of the OpenFlags::Flags
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Lock()

void XrdCl::FileSystem::Lock ( )
inlineprivate

◆ MkDir() [1/2]

XRootDStatus XrdCl::FileSystem::MkDir ( const std::string &  path,
MkDirFlags::Flags  flags,
Access::Mode  mode,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Create a directory - async

Parameters
pathpath to the directory
flagsor'd MkDirFlags
modeaccess mode, or'd Access::Mode
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ MkDir() [2/2]

XRootDStatus XrdCl::FileSystem::MkDir ( const std::string &  path,
MkDirFlags::Flags  flags,
Access::Mode  mode,
uint16_t  timeout = 0 
)

Create a directory - sync

Parameters
pathpath to the directory
flagsor'd MkDirFlags
modeaccess mode, or'd Access::Mode
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Mv() [1/2]

XRootDStatus XrdCl::FileSystem::Mv ( const std::string &  source,
const std::string &  dest,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Move a directory or a file - async

Parameters
sourcethe file or directory to be moved
destthe new name
handlerhandler to be notified when the response arrives,
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Mv() [2/2]

XRootDStatus XrdCl::FileSystem::Mv ( const std::string &  source,
const std::string &  dest,
uint16_t  timeout = 0 
)

Move a directory or a file - sync

Parameters
sourcethe file or directory to be moved
destthe new name
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ operator=()

FileSystem& XrdCl::FileSystem::operator= ( const FileSystem other)
private

◆ Ping() [1/2]

XRootDStatus XrdCl::FileSystem::Ping ( ResponseHandler handler,
uint16_t  timeout = 0 
)

Check if the server is alive - async

Parameters
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Ping() [2/2]

XRootDStatus XrdCl::FileSystem::Ping ( uint16_t  timeout = 0)

Check if the server is alive - sync

Parameters
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Prepare() [1/2]

XRootDStatus XrdCl::FileSystem::Prepare ( const std::vector< std::string > &  fileList,
PrepareFlags::Flags  flags,
uint8_t  priority,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Prepare one or more files for access - async

Parameters
fileListlist of files to be prepared
flagsPrepareFlags::Flags
prioritypriority of the request 0 (lowest) - 3 (highest)
handlerhandler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Prepare() [2/2]

XRootDStatus XrdCl::FileSystem::Prepare ( const std::vector< std::string > &  fileList,
PrepareFlags::Flags  flags,
uint8_t  priority,
Buffer *&  response,
uint16_t  timeout = 0 
)

Prepare one or more files for access - sync

Parameters
fileListlist of files to be prepared
flagsPrepareFlags::Flags
prioritypriority of the request 0 (lowest) - 3 (highest)
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Protocol() [1/2]

XRootDStatus XrdCl::FileSystem::Protocol ( ResponseHandler handler,
uint16_t  timeout = 0 
)

Obtain server protocol information - async

Parameters
handlerhandler to be notified when the response arrives, the response parameter will hold a ProtocolInfo object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Protocol() [2/2]

XRootDStatus XrdCl::FileSystem::Protocol ( ProtocolInfo *&  response,
uint16_t  timeout = 0 
)

Obtain server protocol information - sync

Parameters
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Query() [1/2]

XRootDStatus XrdCl::FileSystem::Query ( QueryCode::Code  queryCode,
const Buffer arg,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Obtain server information - async

Parameters
queryCodethe query code as specified in the QueryCode struct
argquery argument
handlerhandler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Query() [2/2]

XRootDStatus XrdCl::FileSystem::Query ( QueryCode::Code  queryCode,
const Buffer arg,
Buffer *&  response,
uint16_t  timeout = 0 
)

Obtain server information - sync

Parameters
queryCodethe query code as specified in the QueryCode struct
argquery argument
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Rm() [1/2]

XRootDStatus XrdCl::FileSystem::Rm ( const std::string &  path,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Remove a file - async

Parameters
pathpath to the file to be removed
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Rm() [2/2]

XRootDStatus XrdCl::FileSystem::Rm ( const std::string &  path,
uint16_t  timeout = 0 
)

Remove a file - sync

Parameters
pathpath to the file to be removed
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ RmDir() [1/2]

XRootDStatus XrdCl::FileSystem::RmDir ( const std::string &  path,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Remove a directory - async

Parameters
pathpath to the directory to be removed
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ RmDir() [2/2]

XRootDStatus XrdCl::FileSystem::RmDir ( const std::string &  path,
uint16_t  timeout = 0 
)

Remove a directory - sync

Parameters
pathpath to the directory to be removed
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Send()

Status XrdCl::FileSystem::Send ( Message msg,
ResponseHandler handler,
MessageSendParams &  params 
)
private

◆ SendInfo() [1/2]

XRootDStatus XrdCl::FileSystem::SendInfo ( const std::string &  info,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Send info to the server (up to 1024 characters)- async

Parameters
infothe info string to be sent
handlerhandler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ SendInfo() [2/2]

XRootDStatus XrdCl::FileSystem::SendInfo ( const std::string &  info,
Buffer *&  response,
uint16_t  timeout = 0 
)

Send info to the server (up to 1024 characters) - sync

Parameters
infothe info string to be sent
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ SetProperty()

bool XrdCl::FileSystem::SetProperty ( const std::string &  name,
const std::string &  value 
)

Set filesystem property

Filesystem properties: FollowRedirects [true/false] - enable/disable following redirections

◆ Stat() [1/2]

XRootDStatus XrdCl::FileSystem::Stat ( const std::string &  path,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Obtain status information for a path - async

Parameters
pathfile/directory path
handlerhandler to be notified when the response arrives, the response parameter will hold a StatInfo object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Stat() [2/2]

XRootDStatus XrdCl::FileSystem::Stat ( const std::string &  path,
StatInfo *&  response,
uint16_t  timeout = 0 
)

Obtain status information for a path - sync

Parameters
pathfile/directory path
responsethe response (to be deleted by the user only if the procedure is successful)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ StatVFS() [1/2]

XRootDStatus XrdCl::FileSystem::StatVFS ( const std::string &  path,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Obtain status information for a Virtual File System - async

Parameters
pathfile/directory path
handlerhandler to be notified when the response arrives, the response parameter will hold a StatInfoVFS object if the procedure is successful
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ StatVFS() [2/2]

XRootDStatus XrdCl::FileSystem::StatVFS ( const std::string &  path,
StatInfoVFS *&  response,
uint16_t  timeout = 0 
)

Obtain status information for a Virtual File System - sync

Parameters
pathfile/directory path
responsethe response (to be deleted by the user)
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Truncate() [1/2]

XRootDStatus XrdCl::FileSystem::Truncate ( const std::string &  path,
uint64_t  size,
ResponseHandler handler,
uint16_t  timeout = 0 
)

Truncate a file - async

Parameters
pathpath to the file to be truncated
sizefile size
handlerhandler to be notified when the response arrives
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ Truncate() [2/2]

XRootDStatus XrdCl::FileSystem::Truncate ( const std::string &  path,
uint64_t  size,
uint16_t  timeout = 0 
)

Truncate a file - sync

Parameters
pathpath to the file to be truncated
sizefile size
timeouttimeout value, if 0 the environment default will be used
Returns
status of the operation

◆ UnLock()

void XrdCl::FileSystem::UnLock ( )
inlineprivate

Friends And Related Function Documentation

◆ AssignLBHandler

friend class AssignLBHandler
friend

◆ ForkHandler

friend class ForkHandler
friend

Member Data Documentation

◆ pFollowRedirects

bool XrdCl::FileSystem::pFollowRedirects
private

◆ pLoadBalancerLookupDone

bool XrdCl::FileSystem::pLoadBalancerLookupDone
private

◆ pMutex

XrdSysMutex XrdCl::FileSystem::pMutex
private

◆ pPlugIn

FileSystemPlugIn* XrdCl::FileSystem::pPlugIn
private

◆ pUrl

URL* XrdCl::FileSystem::pUrl
private

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