12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef IOMAN_H
- #define IOMAN_H
- #include "cmdman.h"
- #include "fileman.h"
- #include <boost/asio.hpp>
- #include <string>
- using boost::asio::ip::tcp;
- #define BLOCKSIZE 8
- class IoMan {
- private:
- const std::string protoVersion = "0.2";
- boost::asio::io_service ios;
- boost::asio::streambuf sendbuf;
- boost::asio::streambuf recvbuf;
- boost::system::error_code errcode;
- tcp::socket *tcpsock;
- std::string ipstring;
- int port;
- bool connected;
- protected:
- CmdMan cmdman;
- FileMan fileman;
- bool loggedin;
-
- bool parseJson(Json::Value *root, string jsonstring);
- virtual bool handleJson(Json::Value root) = 0;
- virtual void printErrorMessage(std::string msg) = 0;
- virtual void printWelcomeMessage() = 0;
- virtual std::string getCmdPrompt() = 0;
- virtual std::string getUserPrompt() = 0;
- virtual std::string getPassPrompt() = 0;
- public:
- // Basic constructor
- IoMan(char *ipcstring);
- // destructor to clean up all generic stuff
- ~IoMan();
- // enters loop to handle further interaction based on derived class
- void run();
- // setup stuff
- bool init();
- // tries to establish connection, returns error string if applicable
- bool connect();
- // sends a string
- bool sendJsonString(std::string msg);
- // returns a single json object as string
- std::string receiveJsonString();
- // disconnect from server
- void disconnect();
-
- };
- #endif
|