blob: f3fc3b8868cb26c04d5e84ac2423a156bb1b8f46 [file] [log] [blame]
// Copyright (c) 2012 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 "wimax_manager/network_dbus_adaptor.h"
#include <base/logging.h>
#include <base/strings/stringprintf.h>
#include <chromeos/dbus/service_constants.h>
#include "wimax_manager/network.h"
using org::chromium::WiMaxManager::Network_adaptor;
using std::string;
namespace wimax_manager {
NetworkDBusAdaptor::NetworkDBusAdaptor(DBus::Connection *connection,
Network *network)
: DBusAdaptor(connection, GetNetworkObjectPath(*network)),
network_(network) {
// Initialize |SignalStrength| before UpdateProperties() reads it for
// the first time.
SignalStrength = network_->GetSignalStrength();
UpdateProperties();
}
// static
string NetworkDBusAdaptor::GetNetworkObjectPath(const Network &network) {
return base::StringPrintf("%s%08x", kNetworkObjectPathPrefix,
network.identifier());
}
void NetworkDBusAdaptor::UpdateProperties() {
Identifier = network_->identifier();
Name = network_->name();
Type = network_->type();
CINR = network_->cinr();
RSSI = network_->rssi();
int signal_strength = network_->GetSignalStrength();
if (SignalStrength() != signal_strength) {
SignalStrength = signal_strength;
SignalStrengthChanged(signal_strength);
}
}
} // namespace wimax_manager