コード例 #1
0
void
setstate_i_ (varPrec * time,
	     char *type, int *s2,
	     char *cont, int *s1, char *val, int *s3, int *err)
{
  setState_i (time, type, s2, cont, s1, val, s3, err);
}
コード例 #2
0
ファイル: State.cpp プロジェクト: edenduthie/rtft1
int State::setState(int newState) {
	switch (m_state) {
		case NOT_INITIALIZE: {
			switch (newState) {
				case RUNNING:
					if (leavingNotInitializedState() != 0) {
						setState_i(NOT_INITIALIZE);
						return -1;
					}
					setState_i(STARTING);
					if (enterRunningState() != 0) {
						setState_i(NOT_INITIALIZE);
						return -1;
					}
					
					setState_i(RUNNING);
					if (runningState() != 0) {
						setState_i(NOT_INITIALIZE);
						return -1;
					}
					
					return 0;
				case DESTROYED:
					if (leavingStoppedState() != 0) {
						setState_i(NOT_INITIALIZE);
						return -1;
					}
					
					setState_i(DESTROYED);
					if (enterDestroyedState() != 0) {
						setState_i(NOT_INITIALIZE);
						return -1;
					}
					//The final state
					destroyedState();
					return 0;
					
				default:
					return -1;
					
			}
			
		}
			
		case RUNNING: {
			switch (newState) {
				case STOPPED:
					if (leavingRunningState() != 0) {
						setState_i(RUNNING);
						return -1;
					}
					
					setState_i(STOPPING);
					if (enterStoppedState() != 0) {
						setState_i(RUNNING);
						return -1;
					}
					setState_i(STOPPED);
					if (stoppedState() != 0) {
						setState_i(RUNNING);
						return -1;
					}
					return 0;
					
				default:
					return -1;
			}
			
		}
		case STOPPED: {
			switch (newState) {
				case RUNNING:
					if (leavingStoppedState() != 0) {
						setState_i(STOPPED);
						return -1;
					}
					setState_i(STARTING);
					if (enterRunningState() != 0) {
						setState_i(STOPPED);
						return -1;
					}
					setState_i(RUNNING);
					if (runningState() != 0) {
						setState_i(STOPPED);
						return -1;
					}
					return 0;
				case DESTROYED:
					if (leavingStoppedState() != 0) {
						setState_i(STOPPED);
						return -1;
					}
					
					setState_i(DESTROYED);
					if (enterDestroyedState() != 0) {
						setState_i(STOPPED);
						return -1;
					}
					//The final state
					destroyedState();
					return 0;
				default:
					return -1;
			}
		}
			
		case DESTROYED: {
			return -1;
		}
		default:
			return -1;
	}
}