/**
 * \file Interact.h
 * \date 23.03.2002
 * 
 * Interface for the Interact class
 */

#ifndef MODULES_INTERACT_H
#define MODULES_INTERACT_H

#include "Common/Interfaces/Commands.h"
#include "Common/Interfaces/Communication.h"
#include "Common/Module.h"
#include "Common/Main.h"

/**
 * \class Interact
 * \author Marek Lehuta
 * \brief User interaction module
 * 
 * Serves as simple interactive control for user
 */

class Interact : public Module
{
public:
// Construction and destruction
	Interact();
	virtual ~Interact() {}

// Interface implementation
	virtual int Init(int argc, char **argv, int iTask = -1);
	virtual void Run(int iTask = -1);

protected:

private:
	CommunicationInterface *m_pSocket;
	CommandsInterface *m_pCommandGen;
#ifndef COACH
	bool clangInit;
#endif
	bool m_bInit;
	bool m_bAuto;
	bool m_bEof;
	bool m_bGoalie;
	char m_strTeamName[32];
	char m_strServer[32];
	unsigned m_uPort;
	char m_strBuf[128];
	char m_strLast[128];
	int m_iPos;
};

#endif	// MODULES_INTERACT_H
