#ifndef __BMASMTPSession_h__ #define __BMASMTPSession_h__ #include "BMASession.h" /// /// BMAConsoleSession /// /// Extends the session parameters for this BMATCPSocket derived object. /// Extend the protocol() method in order to define the behavior and /// protocol interaction for this socket which is a console session. /// class BMASMTPSession : public BMASession { public: BMAConsoleSession(BMAEPoll &ePoll, BMAConsoleServer &server); ~BMAConsoleSession(); virtual void output(std::stringstream &out); protected: void protocol(char *data, int length) override; private: BMAConsoleServer &server; enum Status {WELCOME, PROMPT, INPUT, PROCESS, DONE}; Status status = WELCOME; void doCommand(std::string request); }; #endif