///////////////////////////////////////////////////////////////////////////
// senf::console::detail::NonblockingSocketSink
-prefix_ senf::console::detail::NonblockingSocketSink::NonblockingSocketSink(Handle handle)
- : handle_ (handle)
+prefix_ senf::console::detail::NonblockingSocketSink::NonblockingSocketSink(Client & client)
+ : client_ (client)
{}
+prefix_ senf::console::Client & senf::console::detail::NonblockingSocketSink::client()
+ const
+{
+ return client_;
+}
+
///////////////////////////////////////////////////////////////////////////
// senf::console::Server
-prefix_ void senf::console::Server::name(std::string const & name)
+prefix_ senf::console::Server & senf::console::Server::name(std::string const & name)
{
name_ = name;
+ return *this;
+}
+
+prefix_ void senf::console::Server::stop()
+{
+ // commit suicide
+ instancePtr().reset(0);
}
///////////////////////////////////////////////////////////////////////////
return client().handle();
}
-prefix_ senf::console::detail::ClientReader::OutputStream & senf::console::detail::ClientReader::stream()
+prefix_ std::ostream & senf::console::detail::ClientReader::stream()
const
{
return client().stream();
v_enablePrompt();
}
+prefix_ void senf::console::detail::ClientReader::translate(std::string & data)
+{
+ v_translate(data);
+}
+
prefix_ senf::console::detail::ClientReader::ClientReader(Client & client)
: client_ (client)
{}
///////////////////////////////////////////////////////////////////////////
// senf::console::Client
+prefix_ senf::console::Client::~Client()
+{}
+
+prefix_ void senf::console::Client::stop()
+{
+ // THIS COMMITS SUICIDE. THE INSTANCE IS GONE AFTER removeClient RETURNS
+ server_.removeClient(*this);
+}
+
+prefix_ std::string const & senf::console::Client::name()
+ const
+{
+ return name_;
+}
+
prefix_ std::string senf::console::Client::promptString()
const
{
return name_ + ":" + executor_.cwd().path() + "$ ";
}
+prefix_ senf::console::Client & senf::console::Client::get(std::ostream & os)
+{
+ return dynamic_cast<detail::NonblockingSocketOStream&>(os)->client();
+}
+
prefix_ senf::console::Client::ClientHandle senf::console::Client::handle()
const
{
return handle_;
}
-prefix_ senf::console::detail::NonblockingSocketOStream & senf::console::Client::stream()
+prefix_ std::ostream & senf::console::Client::stream()
{
return out_t::member;
}