#ifndef TOOLS_SHELL_SHELLCONTEXT #define TOOLS_SHELL_SHELLCONTEXT #include #include #include #include #include "DB.h" #include "DBClientProxy.h" class ShellState; class ShellContext : private boost::noncopyable { public: void changeState(ShellState * pState); void stop(void); bool ParseInput(void); void connect(void); void get(const std::string & db, const std::string & key); void put(const std::string & db, const std::string & key, const std::string & value); void scan(const std::string & db, const std::string & start_key, const std::string & end_key, const std::string & limit); void create(const std::string & db); void run(void); ShellContext(int argc, char ** argv); private: ShellState * pShellState_; bool exit_; int argc_; char ** argv_; int port_; boost::shared_ptr clientProxy_; }; #endif