blob: 1b01dc206471ccf45e9dfc2427b17b13eab4df01 [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <string>
#include <base/command_line.h>
#include <base/logging.h>
#include <brillo/syslog_logging.h>
#include <chromeos/dbus/service_constants.h>
#include "ml/dbus_service/adaptive_charging_service.h"
#include "ml/dbus_service/dbus_service_daemon.h"
#include "ml/process.h"
namespace {
constexpr char kMojoServiceTask[] = "mojo_service";
constexpr char kAdaptiveChargingTask[] = "adaptive_charging";
} // namespace
int main(int argc, char* argv[]) {
brillo::InitLog(brillo::kLogToSyslog | brillo::kLogToStderrIfTty);
// Parses the command line arguments. Shared within the current process.
base::CommandLine::Init(argc, argv);
const std::string task =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("task");
if (task == kMojoServiceTask)
return ml::Process::GetInstance()->Run();
if (task == kAdaptiveChargingTask)
return ml::DBusServiceDaemon<
ml::AdaptiveChargingService,
org::chromium::MachineLearning::AdaptiveChargingAdaptor>(
ml::kMachineLearningAdaptiveChargingServiceName)
.Run();
LOG(ERROR) << "ml-service received unknown task " << task;
return 0;
}