///////////////////////////////////////////////////////////
///////////////// Have an itch? Scratch it! ///////////////
///////////////////////// SCRATCH /////////////////////////
///////////////////// A MUD Server ////////////////////
///////////////////// By: Jared Devall ////////////////////
///////////////////// Thanks: ////////////////////
///////////////////// DIKU/Merc/ROM ////////////////////
///////////////////// Aetas/Deus Gang ////////////////////
///////////////////// Beej ////////////////////
///////////////////////////////////////////////////////////
#ifndef __HANDLER_H_
#define __HANDLER_H_
// Includes
#include <string>
// Forwards
class Avatar;
//! Handles Account input and prompts.
class Handler
{
public:
virtual ~Handler( ) { }
virtual void Enter( Char * ) = 0;
virtual void Exit( Char * ) = 0;
virtual void Handle( Char *, const std::string & ) = 0;
virtual std::string Prompt( Avatar * ) = 0;
};
#define DEF_HANDLER(HandlerName) \
class HandlerName: public Handler { \
public: \
void Enter( Char * ); \
void Exit( Char * ); \
void Handle( Char *, const std::string & ); \
std::string Prompt( Char * ); \
}
DEF_HANDLER(GetNameHandler);
DEF_HANDLER(InputHandler);
DEF_HANDLER(CheckNameHandler);
DEF_HANDLER(GetPasswordHandler);
//DEF_HANDLER(EditHelpHandler);
//DEF_HANDLER(EditAvatarHandler);
#endif