blob: e55d09908647b46e67dc01b87f41fc16cfed82bc [file] [log] [blame]
// Copyright (c) 2010 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 "modem_handler.h"
#include <cstdio>
#include "cromo_server.h"
using std::string;
ModemHandler::ModemHandler(CromoServer& server, const string& tag)
: server_(server),
vendor_tag_(tag),
instance_number_(0) {
}
ModemHandler::~ModemHandler() {
ClearModemList();
}
void ModemHandler::RegisterSelf() {
server_.AddModemHandler(this);
}
void ModemHandler::AddModem(DBus::ObjectAdaptor* modem) {
modems_[modem->path()] = modem;
}
void ModemHandler::RemoveModem(DBus::ObjectAdaptor* modem) {
modems_.erase(modem->path());
}
void ModemHandler::ClearModemList() {
for (ModemMap::iterator it = modems_.begin(); it != modems_.end(); ++it) {
delete (*it).second;
}
modems_.clear();
}
string ModemHandler::MakePath() {
char instance[32];
string path(CromoServer::kServicePath);
snprintf(instance, sizeof(instance), "%d", instance_number_++);
return path.append("/").append(vendor_tag_).append("/").append(instance);
}