| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef PROTOCOL_H
- #define PROTOCOL_H
- #include <string>
- #include <utility>
- #include "util.h"
- class protocol
- {
- public:
- class state
- {
- public:
- enum type
- {
- connected,
- disconnected
- };
- };
- typedef std::pair<state::type, std::string> result;
- public:
- explicit protocol(const context& context);
- result openConnection(const std::string& address);
- result processMessage(const std::string& message);
- private:
- class internalState
- {
- public:
- enum type
- {
- none,
- connect,
- helo,
- auth_login_user,
- auth_login_pass,
- mail_from,
- rcpt_to,
- data,
- mime_oundary,
- image_data,
- disconnect
- };
- };
- private:
- result answer(state::type state, std::string answer) const;
- void appendMessage(const std::string& message);
- private:
- internalState::type m_internalState;
- std::string m_address;
- std::string m_message;
- const context& m_context;
- };
- #endif // PROTOCOL_H
|