#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;
   }
}
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.