ServerCore/ConsoleSession.h
2020-04-13 09:40:58 -07:00

40 lines
925 B
C++

#ifndef __ConsoleSession_h__
#define __ConsoleSession_h__
#include "TerminalSession.h"
#include "TCPSession.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, TCPServer &server);
~ConsoleSession();
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