Whenever a new client connects, a new instance of this class is created. This class shows a
command prompt, receives the commands, parses them and then passes (using a CommandParser)
and passes the commands to an Executor instance.
-
- \fixme Fix Client::clientData implementation
- \fixme Don't register a new ReadHelper every round
*/
class Client
: public senf::intrusive_refcount,
void stop(); ///< Stop the client
/**< This will close the client socket. */
+ std::string const & name() const;
+ ClientHandle handle() const;
+ std::ostream & stream();
+ std::string promptString() const;
+
protected:
private:
Client(Server & server, ClientHandle handle, std::string const & name);
- std::string promptString() const;
- ClientHandle handle() const;
- detail::NonblockingSocketOStream & stream();
-
+ void translate(std::string & data);
void handleInput(std::string input);
-
virtual void v_write(boost::posix_time::ptime timestamp, std::string const & stream,
std::string const & area, unsigned level,
std::string const & message);
friend class Server;
friend class detail::ClientReader;
+ friend class detail::NonblockingSocketSink;
};
}}