XRootD
Loading...
Searching...
No Matches
XrdPosixMap Class Reference

#include <XrdPosixMap.hh>

+ Collaboration diagram for XrdPosixMap:

Public Member Functions

 XrdPosixMap ()
 
 ~XrdPosixMap ()
 

Static Public Member Functions

static mode_t Flags2Mode (dev_t *rdv, uint32_t flags)
 
static XrdCl::Access::Mode Mode2Access (mode_t mode)
 
static int Result (const XrdCl::XRootDStatus &Status, XrdOucECMsg &ecMsg, bool retneg1=false)
 
static void SetDebug (bool dbg)
 

Detailed Description

Definition at line 42 of file XrdPosixMap.hh.

Constructor & Destructor Documentation

◆ XrdPosixMap()

XrdPosixMap::XrdPosixMap ( )
inline

Definition at line 55 of file XrdPosixMap.hh.

55{}

◆ ~XrdPosixMap()

XrdPosixMap::~XrdPosixMap ( )
inline

Definition at line 56 of file XrdPosixMap.hh.

56{}

Member Function Documentation

◆ Flags2Mode()

mode_t XrdPosixMap::Flags2Mode ( dev_t * rdv,
uint32_t flags )
static

Definition at line 62 of file XrdPosixMap.cc.

63{
64 mode_t newflags = 0;
65
66// Map the xroot flags to unix flags
67//
68 if (flags & XrdCl::StatInfo::XBitSet) newflags |= S_IXUSR;
69 if (flags & XrdCl::StatInfo::IsReadable) newflags |= S_IRUSR;
70 if (flags & XrdCl::StatInfo::IsWritable) newflags |= S_IWUSR;
71 if (flags & XrdCl::StatInfo::Other) newflags |= S_IFBLK;
72 else if (flags & XrdCl::StatInfo::IsDir) newflags |= S_IFDIR;
73 else newflags |= S_IFREG;
74 if (flags & XrdCl::StatInfo::POSCPending) newflags |= XRDSFS_POSCPEND;
75 if (rdv)
76 {*rdv = 0;
77 if (flags & XrdCl::StatInfo::Offline) *rdv |= XRDSFS_OFFLINE;
79 }
80
81 return newflags;
82}
static const dev_t XRDSFS_HASBKUP
#define XRDSFS_POSCPEND
static const dev_t XRDSFS_OFFLINE
@ IsReadable
Read access is allowed.
@ IsDir
This is a directory.
@ Other
Neither a file nor a directory.
@ BackUpExists
Back up copy exists.
@ XBitSet
Executable/searchable bit set.
@ Offline
File is not online (ie. on disk)
@ IsWritable
Write access is allowed.

References XrdCl::StatInfo::BackUpExists, XrdCl::StatInfo::IsDir, XrdCl::StatInfo::IsReadable, XrdCl::StatInfo::IsWritable, XrdCl::StatInfo::Offline, XrdCl::StatInfo::Other, XrdCl::StatInfo::POSCPending, XrdCl::StatInfo::XBitSet, XRDSFS_HASBKUP, XRDSFS_OFFLINE, and XRDSFS_POSCPEND.

Referenced by XrdPosixAdmin::Stat(), XrdPosixAdmin::Stat(), and XrdPosixFile::Stat().

+ Here is the caller graph for this function:

◆ Mode2Access()

XrdCl::Access::Mode XrdPosixMap::Mode2Access ( mode_t mode)
static

Definition at line 130 of file XrdPosixMap.cc.

132
133// Map the mode
134//
135 if (mode & S_IRUSR) XMode |= XrdCl::Access::UR;
136 if (mode & S_IWUSR) XMode |= XrdCl::Access::UW;
137 if (mode & S_IXUSR) XMode |= XrdCl::Access::UX;
138 if (mode & S_IRGRP) XMode |= XrdCl::Access::GR;
139 if (mode & S_IWGRP) XMode |= XrdCl::Access::GW;
140 if (mode & S_IXGRP) XMode |= XrdCl::Access::GX;
141 if (mode & S_IROTH) XMode |= XrdCl::Access::OR;
142 if (mode & S_IXOTH) XMode |= XrdCl::Access::OX;
143 return XMode;
144}
@ OX
world executable/browsable
@ UR
owner readable
@ GR
group readable
@ UW
owner writable
@ GX
group executable/browsable
@ GW
group writable
@ UX
owner executable/browsable
@ OR
world readable

References XrdCl::Access::GR, XrdCl::Access::GW, XrdCl::Access::GX, XrdCl::Access::None, XrdCl::Access::OR, XrdCl::Access::OX, XrdCl::Access::UR, XrdCl::Access::UW, and XrdCl::Access::UX.

Referenced by XrdPosixXrootd::Mkdir().

+ Here is the caller graph for this function:

◆ Result()

int XrdPosixMap::Result ( const XrdCl::XRootDStatus & Status,
XrdOucECMsg & ecMsg,
bool retneg1 = false )
static

Definition at line 150 of file XrdPosixMap.cc.

152{
153 int eNum;
154
155// If all went well, return success
156//
157 if (Status.IsOK()) return 0;
158
159// If this is an xrootd error then get the xrootd generated error
160//
161 if (Status.code == XrdCl::errErrorResponse)
162 {ecMsg = Status.GetErrorMessage();
163 eNum = XProtocol::toErrno(Status.errNo);
164 } else {
165 ecMsg = Status.ToStr();
166 eNum = (Status.errNo ? Status.errNo : mapCode(Status.code));
167 }
168
169// Trace this if need be (we supress this for as we really need more info to
170// make this messae useful like the opteration and path).
171//
172// if (eNum != ENOENT && !ecMsg.hasMsg() && Debug)
173// std::cerr <<"XrdPosix: " <<eText <<std::endl;
174
175// Return
176//
177 ecMsg = errno = eNum;
178 return (retneg1 ? -1 : -eNum);
179}
static int toErrno(int xerr)
const std::string & GetErrorMessage() const
Get error message.
std::string ToStr() const
Convert to string.
const uint16_t errErrorResponse
thread_local XrdOucECMsg ecMsg
uint16_t code
Error type, or additional hints on what to do.
bool IsOK() const
We're fine.
uint32_t errNo
Errno, if any.

References XrdCl::Status::code, XrdCl::errErrorResponse, XrdCl::Status::errNo, XrdCl::XRootDStatus::GetErrorMessage(), XrdCl::Status::IsOK(), XProtocol::toErrno(), and XrdCl::XRootDStatus::ToStr().

Referenced by XrdPosixXrootd::Close(), XrdPosixAdmin::FanOut(), XrdPosixFile::HandleResponse(), XrdPosixFileRH::HandleResponse(), XrdPosixXrootd::Mkdir(), XrdPosixDir::Open(), XrdPosixFile::pgRead(), XrdPosixFile::pgWrite(), XrdPosixFile::pgWrite(), XrdPosixAdmin::Query(), XrdPosixFile::Read(), XrdPosixFile::Read(), XrdPosixFile::ReadV(), XrdPosixFile::ReadV(), XrdPosixXrootd::Rename(), XrdPosixXrootd::Rmdir(), XrdPosixAdmin::Stat(), XrdPosixAdmin::Stat(), XrdPosixXrootd::Statvfs(), XrdPosixFile::Sync(), XrdPosixFile::Sync(), XrdPosixFile::Trunc(), XrdPosixXrootd::Truncate(), XrdPosixXrootd::Unlink(), XrdPosixFile::Write(), and XrdPosixFile::Write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetDebug()

static void XrdPosixMap::SetDebug ( bool dbg)
inlinestatic

Definition at line 53 of file XrdPosixMap.hh.

53{Debug = dbg;}

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