void RuntimeStateMachine::initialize( Object* a_pObject )
{
    *reinterpret_cast<RuntimeState**>(reinterpret_cast<byte*>(a_pObject)+m_uiHistoryStateOffset) = NULL;
    *reinterpret_cast<int32*>(reinterpret_cast<byte*>(a_pObject)+m_uiEventQueuePointerOffset) = -1;
    dispatchQueuedEvents(a_pObject);
    static_cast<RuntimeTrack*>(m_Tracks[0])->enter(a_pObject);
}
void RuntimeStateMachine::update( Object* a_pObject )
{
    o_assert(false, "not working");
    //a_pObject->setNativeFlag(eNativeFlag_UpdatingStateMachine, true);

    //a_pObject->setNativeFlag(eNativeFlag_DispatchingStateEvents, true);
    dispatchQueuedEvents(a_pObject);
    static_cast<RuntimeTrack*>(m_Tracks[0])->solveTransitions(a_pObject);
    //a_pObject->setNativeFlag(eNativeFlag_DispatchingStateEvents, false);

    static_cast<RuntimeTrack*>(m_Tracks[0])->update(a_pObject);

    //a_pObject->setNativeFlag(eNativeFlag_UpdatingStateMachine, false);
}
Beispiel #3
0
void WebSocket::EventQueue::resumeTimerFired(Timer<EventQueue>*)
{
    ASSERT(m_state == Suspended);
    m_state = Active;
    dispatchQueuedEvents();
}