#ifndef TOKENGAME_H
#define TOKENGAME_H


#include "Simulation.h"



class TokenGame : public Simulation
{
public:
   TokenGame(NetClass* net, 
	   const std::string& netname, 
	   const std::string& resultaddress, 
	   const DateTime &starttime);
   ~TokenGame(void);

   bool isSingleStep() const;
   void run();
   void shutdown();

protected:
   vector<string> couldFire();
	void fire(string transName);
   void writePlaceContent(socket_t* sock, string placename);
   void writeFireList(socket_t* sock, bool newlineSeparating);
   void writeChangedPlacesAndTransitions(socket_t* sock);
};

#endif
