AppCore
Loading...
Searching...
No Matches
State.h
Go to the documentation of this file.
1#ifndef _ESTATE_H_
2#define _ESTATE_H_
3
4#include <string>
5#include <qobject.h>
6#include <stdint.h>
7
8#include "StateDefines.h"
9
10class StateManager;
11class StorageList;
12
17class State : public QObject
18{
19 Q_OBJECT
20public:
25 virtual ~State();
26
33 virtual State *Clone( StorageList &inputStream ) = 0;
34
39 QString GetStateName() const;
40
46 virtual void OnEnter();
47 virtual void OnEnter( const int32_t stateRequestCode );
48
54 virtual void OnResume();
55 virtual void OnResume( const int32_t stateRequestCode, const int32_t stateResultCode, StorageList &storageList );
56
62 virtual void OnLeave();
63
69 virtual void OnTimeOut();
70
76 virtual void OnSecondTick();
77
83 virtual void OnMinuteTick();
84
85protected:
93 State( const QString &stateName, StateManager *context );
94
99 virtual void TimerStart( unsigned long timeout );
100
104 virtual void TimerStop();
105
111 virtual bool IsTimerActive();
112
121
125 virtual StateDefines::StateAlgorithmResult ChangeStateForResult( const QString &stateName, StorageList &storageList, const int32_t stateRequestCode );
126
132
136 virtual StateDefines::StateAlgorithmResult FinishStateWithResult( const int32_t stateResultCode, StorageList &storageList );
137
142
147
151 virtual void FillStorageList( const StorageList &storageList );
152
157
158private slots:
159 // timer slots
163 void TimeOut();
164
165private:
167
168 class DataClass;
169 DataClass *d;
170
172};
173
174#endif // _ESTATE_H_
StateAlgorithmResult
Definition StateDefines.h:24
ChangeStateFlag
Definition StateDefines.h:10
@ ChangeStateFlagUndefined
Definition StateDefines.h:11
FinishStateFlag
Definition StateDefines.h:18
@ FinishStateFlagUndefined
Definition StateDefines.h:19
Definition StateManager.h:14
abstract interface class creating API for states.
Definition State.h:18
virtual void OnResume(const int32_t stateRequestCode, const int32_t stateResultCode, StorageList &storageList)
virtual bool IsTimerActive()
Method to determine if timer is now running.
QString GetStateName() const
Function returns string representation of state.
virtual bool IsChangeStateForResultMapEmpty()
IsChangeStateForResultMapEmpty method returns information about existing states which have to be retu...
virtual State * Clone(StorageList &inputStream)=0
Function returns concreete new instantion of descendent EState class.
virtual StorageList & GetStorageList()
Gets storage list saved in this class.
virtual StateDefines::StateAlgorithmResult ChangeState(const QString &stateName, StorageList &storageList, const StateDefines::ChangeStateFlag changeStateFlag=StateDefines::ChangeStateFlagUndefined)
Launch a new state. You will not receive any information about when the state exits.
virtual void TimerStop()
Stop currently running timer.
virtual StateDefines::StateAlgorithmResult FinishState(const StateDefines::FinishStateFlag finishStateFlag=StateDefines::FinishStateFlagUndefined)
Call this when your state is done and should be closed. finishStateFlag - Additional options for how ...
virtual void OnLeave()
This method is called immediately before state is to be inactivated.
StateManager * GetStateManager()
Method for getting used ECore.
virtual ~State()
virtual StateDefines::StateAlgorithmResult ChangeStateForResult(const QString &stateName, StorageList &storageList, const int32_t stateRequestCode)
Launch state for which you would like a result when it finished. When this state (stateName) exits,...
virtual void OnEnter()
This method is called when state is going to be active.
virtual void FillStorageList(const StorageList &storageList)
Copy all items from storageList and copy to member in this class.
virtual void OnTimeOut()
Called when on show of timer is expired.
virtual StateDefines::StateAlgorithmResult FinishStateWithResult(const int32_t stateResultCode, StorageList &storageList)
Call this when your state is done and should be closed. State result code stateResultCode is propagat...
virtual void OnSecondTick()
Called every second.
virtual void TimerStart(unsigned long timeout)
virtual void OnResume()
This method is called when state is going to be reactivated from state history.
virtual void OnEnter(const int32_t stateRequestCode)
State(const QString &stateName, StateManager *context)
virtual void OnMinuteTick()
Called on every minute change.
Definition StorageList.h:12