X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fandroid%2Fservice%2Fdaemon.cpp;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fandroid%2Fservice%2Fdaemon.cpp;h=6b3e41bdcfe110cfaccc54be823d0cc626dd25d2;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/android/service/daemon.cpp b/src/type3_AndroidCloud/anbox-master/android/service/daemon.cpp new file mode 100644 index 0000000..6b3e41b --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/android/service/daemon.cpp @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2016 Simon Fels + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + */ + +#include "android/service/daemon.h" +#include "android/service/host_connector.h" +#include "android/service/platform_service.h" + +#include "core/posix/signal.h" + +#include + +#include + +#include +#include +#include + +namespace anbox { +Daemon::Daemon() { +} + +Daemon::~Daemon() { +} + +int Daemon::run() { + auto trap = core::posix::trap_signals_for_process({core::posix::Signal::sig_term, + core::posix::Signal::sig_int}); + trap->signal_raised().connect([trap](const core::posix::Signal&) { + trap->stop(); + }); + + auto host_connector = std::make_shared(); + host_connector->start(); + + android::defaultServiceManager()->addService( + android::String16(android::PlatformService::service_name()), + new android::PlatformService(host_connector->platform_api_stub())); + + android::ProcessState::self()->startThreadPool(); + + trap->run(); + + android::IPCThreadState::self()->joinThreadPool(); + + return EXIT_SUCCESS; +} +} // namespace anbox