clboss/main.cpp

31 lines
657 B
C++
Raw Normal View History

2020-08-24 05:13:32 +00:00
#include<Boss/Main.hpp>
#include<Boss/open_rpc_socket.hpp>
2020-08-24 02:28:40 +00:00
#include<Ev/Io.hpp>
#include<Ev/start.hpp>
#include<Net/Fd.hpp>
2020-08-24 02:28:40 +00:00
#include<iostream>
#include<memory>
2020-08-24 02:28:40 +00:00
namespace {
Ev::Io<int> io_main(int argc, char **argv) {
2020-08-24 05:13:32 +00:00
auto arg_vec = std::vector<std::string>();
for (int i = 0; i < argc; ++i) {
arg_vec.push_back(std::string(argv[i]));
}
auto main_obj = std::make_shared<Boss::Main>(
arg_vec, std::cin, std::cout, std::cerr,
Boss::open_rpc_socket
);
return main_obj->run().then([main_obj](int ec) {
/* Ensures main_obj is alive! */
return Ev::lift(ec);
2020-08-24 03:13:12 +00:00
});
2020-08-24 02:28:40 +00:00
}
}
2020-08-22 14:33:01 +00:00
int main (int argc, char **argv) {
2020-08-24 02:28:40 +00:00
return Ev::start(io_main(argc, argv));
2020-08-22 14:33:01 +00:00
}