X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FtestServer.cc;h=f0d500ed02f70a78707a5d88c047cf726c9245f5;hb=9c0078ac0054789badff2a987364ed0448b080ef;hp=8e9323a2ad6373d48d277a0a5b6db77b15c980ad;hpb=412cf8e222086fb5d89b15cb11556799e131f390;p=senf.git diff --git a/Console/testServer.cc b/Console/testServer.cc index 8e9323a..f0d500e 100644 --- a/Console/testServer.cc +++ b/Console/testServer.cc @@ -29,6 +29,8 @@ // Custom includes #include #include "Server.hh" +#include "Node.hh" +#include "ObjectDirectory.hh" #include "../Scheduler/Scheduler.hh" #include "../Utils/Logger/SenfLog.hh" @@ -36,12 +38,56 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// +namespace { + + void fn(std::ostream & output, + senf::console::CommandNode::Arguments const & arguments) { + senf::console::CommandNode::Arguments::iterator i (arguments.begin()); + senf::console::CommandNode::Arguments::iterator i_end (arguments.end()); + for (; i != i_end; ++i) { + senf::console::CommandNode::Arguments::value_type::iterator j (i->begin()); + senf::console::CommandNode::Arguments::value_type::iterator j_end (i->end()); + for (; j != j_end; ++j) + output << j->value() << ' '; + } + output << "\n"; + } + + struct TestObject + { + senf::console::ObjectDirectory dir; + + TestObject() : dir(this) { + dir.add("blub", &TestObject::blub) + .doc("Example of a member function"); + } + + void blub(std::ostream & output, senf::console::CommandNode::Arguments const & args) { + output << "blub\n"; + } + }; + +} + int main(int, char const **) { senf::log::ConsoleTarget::instance().route< senf::SenfLog, senf::log::NOTICE >(); + 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"); + senf::console::root().mkdir("server"); + senf::console::root()["network"].add("route", &fn) + .doc("Example of a directly registered function"); + + TestObject test; + senf::console::root().add("testob", test.dir) + .doc("Example of an instance directory"); + senf::console::Server::start( senf::INet4SocketAddress("127.0.0.1:23232") ) - .name("testServer "); + .name("testServer"); senf::Scheduler::instance().process(); }