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
|
#include <BALL/VIEW/KERNEL/UIOperationMode.h>
namespace BALL
{
namespace VIEW
{
Mutex UIOperationMode::create_mutex_;
boost::shared_ptr<UIOperationMode> UIOperationMode::instance_;
UIOperationMode::UIOperationMode()
: mode_(MODE_FULL)
{
}
UIOperationMode::~UIOperationMode()
{
}
UIOperationMode& UIOperationMode::instance()
{
if (!instance_)
{
//Another thread could have taken over control right now
//so lock a mutex to ensure the class is created only once.
create_mutex_.lock();
//Check that the manager has not been created by a concurring thread
if(!instance_)
{
instance_ = boost::shared_ptr<UIOperationMode>(new UIOperationMode());
}
create_mutex_.unlock();
}
return *instance_;
}
UIOperationMode::OperationMode UIOperationMode::getMode()
{
return mode_;
}
void UIOperationMode::setMode(OperationMode new_mode)
{
mode_ = new_mode;
}
bool UIOperationMode::isFull()
{
return (mode_ == MODE_FULL);
}
bool UIOperationMode::isAdvanced()
{
return (mode_ == MODE_ADVANCED);
}
bool UIOperationMode::isKiosk()
{
return (mode_ == MODE_KIOSK);
}
}
}
|