40 lines
949 B
C++
40 lines
949 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::stringstream &out, 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
|