#include <iostream>
#include <string>
using namespace std;

#include "CPFcpp.hpp"

class FindNeutral : public StateBase
{
public:
	FindNeutral(string stateid, int32_t timeout = -1) : StateBase{stateid, timeout}
	{
		cout << "\t\tFindNeutral constructor, state ID: " << stateid << ", timeout = " << timeout << endl;
	}
	
private:
	enum SubStates
	{
		firstSubstate	
	};
	
	StateNames nextState = findNeutral;
	
	void doStateEntryActions()
	{
		cout << "\t\tFindNeutral: doing state entry actions; stateTimeout = " << stateTimeout << endl;
	}
	void doStateActions()
	{
		cout << "\t\tFindNeutral: doing state actions" << endl;
	}
	StateNames checkEvents()
	{
		cout << "\t\tFindNeutral: checking events" << endl;
		return (descend);
	}
	void doStateExit(bool timeout)
	{
		if (timeout)
			cout << "\t\tFindNeutral: doing state exit with timeout" << endl;
		else
			cout << "\t\tFindNeutral: doing state exit no timeout" << endl;
	}
};