ServerCore/ConsoleSession.h

42 lines
953 B
C++

#ifndef __ConsoleSession_h__
#define __ConsoleSession_h__
#include "TerminalSession.h"
//#include "TCPServer.h"
#include "CommandList.h"
namespace core {
class TCPServer;
///
/// 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(coreutils::ZString &data) override;
private:
enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
Status status = WELCOME;
void doCommand(coreutils::ZString &request);
coreutils::ZString command;
};
}
#endif