X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FtestServer.cc;h=1d0ed5893c562a1b2bce988f85df18d34b7c72c8;hb=e879290346fe5242d7df2d70ee552d264081492f;hp=a1c3c2b350cbebcc574eddeecbcbf90b90002c92;hpb=6e417a227d417cef20d55af94e2474fbe9c280b8;p=senf.git diff --git a/Console/testServer.cc b/Console/testServer.cc index a1c3c2b..1d0ed58 100644 --- a/Console/testServer.cc +++ b/Console/testServer.cc @@ -32,14 +32,11 @@ namespace kw = senf::console::kw; void echo(std::ostream & output, senf::console::ParseCommandInfo const & command) { - typedef senf::console::ParseCommandInfo::ArgumentsRange::iterator iterator; - iterator i (command.arguments().begin()); - iterator i_end (command.arguments().end()); + typedef senf::console::ParseCommandInfo::TokensRange::iterator iterator; + iterator i (command.tokens().begin()); + iterator i_end (command.tokens().end()); for (; i != i_end; ++i) { - iterator::value_type::iterator j (i->begin()); - iterator::value_type::iterator j_end (i->end()); - for (; j != j_end; ++j) - output << j->value() << ' '; + output << i->value() << ' '; } output << "\n"; } @@ -69,34 +66,51 @@ void shutdownServer() throw senf::console::Executor::ExitException(); } +void enableLogging(std::ostream & os) +{ + senf::console::Client::get(os).route(); +} + int main(int, char **) { ::signal(SIGPIPE, SIG_IGN); - senf::log::ConsoleTarget::instance().route< senf::SenfLog, senf::log::NOTICE >(); + senf::log::ConsoleTarget::instance().route< senf::log::VERBOSE >(); senf::console::root() .doc("This is the console test application"); + senf::console::root() - .mkdir("network") - .doc("Network related settings"); - senf::console::root()["network"] - .mkdir("eth0") - .doc("Ethernet device eth0"); + .mkdir("console") + .doc("Console settings"); + + senf::console::DirectoryNode & serverDir ( + senf::console::root() + .mkdir("server") + .doc("server commands") ); + + senf::console::ScopedDirectory<> testDir; senf::console::root() - .mkdir("server"); - senf::console::root()["server"] + .add("test", testDir) + .doc("Test functions"); + + senf::console::root()["console"] + .add("showlog", &enableLogging) + .doc("Enable display of log messages on the current console"); + + serverDir .add("shutdown", &shutdownServer) .doc("Terminate server application"); - senf::console::root()["network"] + + testDir .add("echo", &echo) .doc("Example of a function utilizing manual argument parsing"); TestObject test; - senf::console::root() - .add("testob", test.dir) + testDir + .add("extra", test.dir) .doc("Example of an instance directory"); - senf::console::Server::start( senf::INet4SocketAddress(23232) ) + senf::console::Server::start( senf::INet4SocketAddress(23232u) ) .name("testServer"); senf::Scheduler::instance().process();