#include "state.h"

namespace juefx{

State::Ptr stateInstance;

State::State()
{

}

void State::Reset()
{
    stateInstance.reset();
}

State::Ptr State::Instance()
{
    if(!stateInstance){
        stateInstance.reset(new State());
    }
    return stateInstance;
}

void State::AddState(ulong state)
{
    state_ |= state;
}

void State::RemoveState(ulong state)
{
    state_ &=~ state;
}

bool State::HasState(ulong state)
{
    return state_ & state;
}

} // end of namespace