#include "TGLLockable.h"
#include <TError.h>
ClassImp(TGLLockable)
TGLLockable::TGLLockable() :
fLock (kUnlocked)
{
}
Bool_t TGLLockable::TakeLock(ELock lock) const
{
if (LockValid(lock) && fLock == kUnlocked) {
fLock = lock;
if (gDebug>3) {
Info("TGLLockable::TakeLock", "'%s' took %s",
LockIdStr(), LockName(fLock));
}
return kTRUE;
}
Error("TGLLockable::TakeLock", "'%s' unable to take %s, already %s",
LockIdStr(), LockName(lock), LockName(fLock));
return kFALSE;
}
Bool_t TGLLockable::ReleaseLock(ELock lock) const
{
if (LockValid(lock) && fLock == lock) {
fLock = kUnlocked;
if (gDebug>3) {
Info("TGLLockable::ReleaseLock", "'%s' released %s",
LockIdStr(), LockName(lock));
}
return kTRUE;
}
Error("TGLLockable::ReleaseLock", "'%s' unable to release %s, is %s",
LockIdStr(), LockName(lock), LockName(fLock));
return kFALSE;
}
const char* TGLLockable::LockName(ELock lock)
{
static const char* names[] =
{ "Unlocked", "DrawLock", "SelectLock", "ModifyLock" };
if (lock <= kModifyLock) {
return names[lock];
} else {
return "<unknown-lock>";
}
}
Bool_t TGLLockable::LockValid(ELock lock)
{
switch(lock) {
case kDrawLock:
case kSelectLock:
case kModifyLock:
return kTRUE;
default:
return kFALSE;
}
}
Last change: Wed Jun 25 08:41:03 2008
Last generated: 2008-06-25 08:41
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.