Logo ROOT  
Reference Guide
TLockPath.h
Go to the documentation of this file.
1// @(#)root/proof:$Id$
2// Author: G. Ganis, Oct 2015
3
4/*************************************************************************
5 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TLockPath
13#define ROOT_TLockPath
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// TLockPath //
18// //
19// Path locking class allowing shared and exclusive locks //
20// //
21//////////////////////////////////////////////////////////////////////////
22
23#include "TObject.h"
24#include "TString.h"
25
26class TLockPath : public TObject {
27private:
28 TString fName; // path to lock
29 Int_t fLockId; // file id of dir lock
30
31public:
32 TLockPath(const char *path = "");
33 ~TLockPath() { if (IsLocked()) Unlock(); }
34
35 const char *GetName() const { return fName; }
36 void SetName(const char *path) { fName = path; }
37
38 Int_t Lock(Bool_t shared = kFALSE);
39 Int_t Unlock();
40
41 Bool_t IsLocked() const { return (fLockId > -1); }
42
43 ClassDef(TLockPath, 0) // Path locking class
44};
45
47private:
48 TLockPath *fLocker; //locker instance
49
50public:
52 fLocker = l; fLocker->Lock(shared); }
54};
55
56#endif
int Int_t
Definition: RtypesCore.h:43
const Bool_t kFALSE
Definition: RtypesCore.h:90
bool Bool_t
Definition: RtypesCore.h:61
#define ClassDef(name, id)
Definition: Rtypes.h:322
TLockPath * fLocker
Definition: TLockPath.h:48
TLockPathGuard(TLockPath *l, Bool_t shared=kFALSE)
Definition: TLockPath.h:51
Path locking class allowing shared and exclusive locks.
Definition: TLockPath.h:26
void SetName(const char *path)
Definition: TLockPath.h:36
TLockPath(const char *path="")
Locks the directory.
Definition: TLockPath.cxx:36
const char * GetName() const
Returns name of object.
Definition: TLockPath.h:35
Int_t fLockId
Definition: TLockPath.h:29
Int_t Lock(Bool_t shared=kFALSE)
Definition: TLockPath.cxx:43
Bool_t IsLocked() const
Definition: TLockPath.h:41
~TLockPath()
Definition: TLockPath.h:33
Int_t Unlock()
Unlock the directory.
Definition: TLockPath.cxx:80
TString fName
Definition: TLockPath.h:28
Mother of all ROOT objects.
Definition: TObject.h:37
Basic string class.
Definition: TString.h:131
auto * l
Definition: textangle.C:4