/* * Copyright 2014 Cloudius Systems */ #include "database.hh" #include "core/app-template.hh" #include "core/smp.hh" #include "thrift/server.hh" namespace bpo = boost::program_options; int main(int ac, char** av) { app_template app; app.add_options() ("thrift-port", bpo::value()->default_value(9160), "Thrift port") ("datadir", bpo::value()->default_value("/var/lib/cassandra/data"), "data directory"); auto server = std::make_unique>();; return app.run(ac, av, [&] { auto&& config = app.configuration(); uint16_t port = config["thrift-port"].as(); sstring datadir = config["datadir"].as(); database db(datadir); auto server = new distributed; server->start(std::ref(db)).then([server = std::move(server), port] () mutable { server->invoke_on_all(&thrift_server::listen, ipv4_addr{port}); }).then([port] { std::cout << "Thrift server listening on port " << port << " ...\n"; }); }); }