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

#include <XrdOssCsiRanges.hh>

Collaboration diagram for XrdOssCsiRangeGuard:

Public Member Functions

 XrdOssCsiRangeGuard ()
 ~XrdOssCsiRangeGuard ()
const std::pair< off_t, off_t > & getTrackinglens () const
void ReleaseAll ()
void SetRange (XrdOssCsiRanges *r, XrdOssCsiRange_s *rp)
void SetTrackingInfo (XrdOssCsiPages *p, const std::pair< off_t, off_t > &tsizes, bool locked)
void unlockTrackinglen ()
void Wait ()

Detailed Description

Definition at line 57 of file XrdOssCsiRanges.hh.

Constructor & Destructor Documentation

◆ XrdOssCsiRangeGuard()

XrdOssCsiRangeGuard::XrdOssCsiRangeGuard ( )
inline

Definition at line 60 of file XrdOssCsiRanges.hh.

60: r_(NULL), rp_(NULL), pages_(NULL), trackinglenlocked_(false) { }

◆ ~XrdOssCsiRangeGuard()

XrdOssCsiRangeGuard::~XrdOssCsiRangeGuard ( )

Definition at line 68 of file XrdOssCsiRanges.cc.

69{
70 ReleaseAll();
71}

References ReleaseAll().

Here is the call graph for this function:

Member Function Documentation

◆ getTrackinglens()

const std::pair< off_t, off_t > & XrdOssCsiRangeGuard::getTrackinglens ( ) const
inline

Definition at line 71 of file XrdOssCsiRanges.hh.

72 {
73 return trackingsizes_;
74 }

Referenced by XrdOssCsiPages::FetchRange(), XrdOssCsiPages::StoreRange(), XrdOssCsiPages::truncate(), XrdOssCsiPages::UpdateRange(), and XrdOssCsiPages::VerifyRange().

Here is the caller graph for this function:

◆ ReleaseAll()

void XrdOssCsiRangeGuard::ReleaseAll ( )

Definition at line 37 of file XrdOssCsiRanges.cc.

38{
39 if (trackinglenlocked_)
40 {
42 }
43
44 if (r_)
45 {
46 r_->RemoveRange(rp_);
47 r_ = NULL;
48 rp_ = NULL;
49 }
50}

References unlockTrackinglen().

Referenced by ~XrdOssCsiRangeGuard(), XrdOssCsiFile::Ftruncate(), XrdOssCsiFile::pgWrite(), XrdOssCsiFile::Write(), and XrdOssCsiFile::WriteV().

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

◆ SetRange()

void XrdOssCsiRangeGuard::SetRange ( XrdOssCsiRanges * r,
XrdOssCsiRange_s * rp )
inline

Definition at line 63 of file XrdOssCsiRanges.hh.

64 {
65 r_ = r;
66 rp_ = rp;
67 pages_ = NULL;
68 trackinglenlocked_ = false;
69 }

Referenced by XrdOssCsiRanges::AddRange().

Here is the caller graph for this function:

◆ SetTrackingInfo()

void XrdOssCsiRangeGuard::SetTrackingInfo ( XrdOssCsiPages * p,
const std::pair< off_t, off_t > & tsizes,
bool locked )
inline

Definition at line 76 of file XrdOssCsiRanges.hh.

77 {
78 trackingsizes_ = tsizes;
79 if (locked)
80 {
81 trackinglenlocked_ = true;
82 pages_ = p;
83 }
84 }

Referenced by XrdOssCsiPages::LockTrackinglen().

Here is the caller graph for this function:

◆ unlockTrackinglen()

void XrdOssCsiRangeGuard::unlockTrackinglen ( )

Definition at line 58 of file XrdOssCsiRanges.cc.

59{
60 assert(pages_ != NULL);
61 assert(trackinglenlocked_ == true);
62
63 pages_->TrackedSizeRelease();
64 trackinglenlocked_ = false;
65 pages_ = NULL;
66}

Referenced by ReleaseAll(), XrdOssCsiPages::StoreRange(), XrdOssCsiPages::truncate(), and XrdOssCsiPages::UpdateRange().

Here is the caller graph for this function:

◆ Wait()

void XrdOssCsiRangeGuard::Wait ( )

Definition at line 52 of file XrdOssCsiRanges.cc.

53{
54 assert(r_ != NULL);
55 r_->Wait(rp_);
56}

Referenced by XrdOssCsiPages::LockTrackinglen().

Here is the caller graph for this function:

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