blob: 230e927e4f15c93829dd0fb8c8a3dbfbebebefb9 [file] [log] [blame]
Darin Petkov887f2982011-07-14 16:10:17 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "shill/modem_info.h"
6
7#include <mm/mm-modem.h>
8
9#include "shill/modem_manager.h"
10
11using std::string;
12
13namespace shill {
14
15const char ModemInfo::kCromoService[] = "org.chromium.ModemManager";
16const char ModemInfo::kCromoPath[] = "/org/chromium/ModemManager";
17
18ModemInfo::ModemInfo(ControlInterface *control_interface,
19 EventDispatcher *dispatcher,
20 Manager *manager,
21 GLib *glib)
22 : control_interface_(control_interface),
Darin Petkov67d8ecf2011-07-26 16:03:30 -070023 dispatcher_(dispatcher),
Darin Petkov887f2982011-07-14 16:10:17 -070024 manager_(manager),
25 glib_(glib) {}
26
27ModemInfo::~ModemInfo() {
28 Stop();
29}
30
31void ModemInfo::Start() {
32 RegisterModemManager(MM_MODEMMANAGER_SERVICE, MM_MODEMMANAGER_PATH);
33 RegisterModemManager(kCromoService, kCromoPath);
34}
35
36void ModemInfo::Stop() {
37 modem_managers_.reset();
38}
39
40void ModemInfo::RegisterModemManager(const string &service,
41 const string &path) {
42 ModemManager *manager = new ModemManager(service,
43 path,
44 control_interface_,
45 dispatcher_,
46 manager_,
47 glib_);
48 modem_managers_.push_back(manager); // Passes ownership.
49 manager->Start();
50}
51
52} // namespace shill