ServerCore/ConsoleSession.h

42 lines
993 B
C++

#ifndef __ConsoleSession_h__
#define __ConsoleSession_h__
#include "TerminalSession.h"
#include "Session.h"
#include "Service.h"
#include "CommandList.h"
namespace core {
///
/// ConsoleSession
///
/// Extends the session parameters for this TCPSocket derived object.
/// Extend the protocol() method in order to define the behavior and
/// protocol interaction for this socket which is a console session.
///
class ConsoleSession : public TerminalSession {
public:
ConsoleSession(EPoll &ePoll, Service &service);
~ConsoleSession();
virtual void output(std::stringstream &out);
void writeLog(std::string data);
protected:
void protocol(std::string data) override;
private:
enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
Status status = WELCOME;
void doCommand(std::string request);
std::string command;
};
}
#endif