XRootD
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 }
void RemoveRange(XrdOssCsiRange_s *rp)

References XrdOssCsiRanges::RemoveRange(), and unlockTrackinglen().

Referenced by ~XrdOssCsiRangeGuard(), XrdOssCsiFileAioJob::DoItWrite1(), XrdOssCsiFileAioJob::DoItWrite2(), XrdOssCsiFile::Ftruncate(), XrdOssCsiFile::pgWrite(), XrdOssCsiFileAio::Recycle(), 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 }
void TrackedSizeRelease()

References XrdOssCsiPages::TrackedSizeRelease().

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

+ Here is the call graph for this function:
+ 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 }
void Wait(XrdOssCsiRange_s *rp)

References XrdOssCsiRanges::Wait().

Referenced by XrdOssCsiPages::LockTrackinglen().

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

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