/usr/include/root/TGLLockable.h is in libroot-graf3d-gl-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | // @(#)root/gl:$Id$
// Author: Matevz Tadel, Feb 2007
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGLLockable_H
#define ROOT_TGLLockable_H
#include <Rtypes.h>
class TGLLockable
{
public:
enum ELock { kUnlocked, // Unlocked
kDrawLock, // Locked for draw, cannot select or modify
kSelectLock, // Locked for select, cannot modify (draw part of select)
kModifyLock // Locked for modify, cannot draw or select
};
private:
TGLLockable(const TGLLockable&); // Not implemented
TGLLockable& operator=(const TGLLockable&); // Not implemented
protected:
// Locking - can take/release via const handle
mutable ELock fLock; // Lock state.
// Ensures unlocking in view of exceptions.
class TUnlocker
{
private:
TUnlocker(const TUnlocker&); // Not implemented
TUnlocker& operator=(const TUnlocker&); // Not implemented
const TGLLockable *fLockable;
public:
TUnlocker(const TGLLockable* l) : fLockable(l) {}
~TUnlocker()
{
if (fLockable->IsLocked())
fLockable->ReleaseLock(fLockable->CurrentLock());
}
};
public:
TGLLockable();
virtual ~TGLLockable() {}
virtual const char* LockIdStr() const { return "<unknown>"; }
Bool_t TakeLock(ELock lock) const;
Bool_t ReleaseLock(ELock lock) const;
Bool_t IsLocked() const { return (fLock != kUnlocked); }
ELock CurrentLock() const { return fLock; }
Bool_t IsDrawOrSelectLock() const { return fLock == kDrawLock || fLock == kSelectLock; }
static const char * LockName(ELock lock);
static Bool_t LockValid(ELock lock);
ClassDef(TGLLockable, 0); // Lock for viewers and scenes.
}; // endclass TGLLockable
#endif
|