Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1024)

Side by Side Diff: src/cashew_server.cc

Issue 3528016: Cashew: implement backend usage API (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/cashew.git
Patch Set: Fix code review nits and remove hardcoded usage URLs Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/cashew_server.h ('k') | src/data_plan.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/cashew_server.h" 5 #include "src/cashew_server.h"
6 6
7 #include <glog/logging.h> 7 #include <glog/logging.h>
8 8
9 #include "src/service_manager.h"
10
9 namespace cashew { 11 namespace cashew {
10 12
11 const char* CashewServer::kServiceName = "org.chromium.Cashew"; 13 const char* CashewServer::kServiceName = "org.chromium.Cashew";
12 const char* CashewServer::kServicePath = "/org/chromium/Cashew"; 14 const char* CashewServer::kServicePath = "/org/chromium/Cashew";
13 15
14 // Cashew D-Bus errors 16 // Cashew D-Bus errors
15 const char* kCashewErrorServiceUnknown = 17 const char* kCashewErrorServiceUnknown =
16 "org.chromium.Cashew.Error.ServiceUnknown"; 18 "org.chromium.Cashew.Error.ServiceUnknown";
17 19
18 CashewServer::CashewServer(DBus::Connection& connection, // NOLINT 20 CashewServer::CashewServer(DBus::Connection& connection, // NOLINT
19 const ServiceManager& service_manager) 21 ServiceManager * const service_manager)
20 : DBus::ObjectAdaptor(connection, kServicePath), 22 : DBus::ObjectAdaptor(connection, kServicePath),
21 service_manager_(service_manager) { 23 service_manager_(CHECK_NOTNULL(service_manager)) {
24 service_manager_->SetCashewServer(this);
22 } 25 }
23 26
24 CashewServer::~CashewServer() { 27 CashewServer::~CashewServer() {
28 service_manager_->SetCashewServer(NULL);
25 } 29 }
26 30
27 // Cashew D-Bus API methods 31 // Cashew D-Bus API methods
28 32
29 DBusDataPlanList CashewServer::GetDataPlans(const std::string& service_path, 33 DBusDataPlanList CashewServer::GetDataPlans(const std::string& service_path,
30 DBus::Error& error) { // NOLINT 34 DBus::Error& error) { // NOLINT
31 DLOG(INFO) << "GetDataPlans: service = " << service_path; 35 DLOG(INFO) << "GetDataPlans: service = " << service_path;
32 DBusDataPlanList dbus_data_plans; 36 DBusDataPlanList dbus_data_plans;
33 const Service *service = service_manager_.GetService(service_path); 37 const Service *service = service_manager_->GetService(service_path);
34 if (service == NULL) { 38 if (service == NULL) {
35 DLOG(WARNING) << "GetDataPlans: unknown service: " << service_path; 39 DLOG(WARNING) << "GetDataPlans: unknown service: " << service_path;
36 error.set(kCashewErrorServiceUnknown, service_path.c_str()); 40 error.set(kCashewErrorServiceUnknown, service_path.c_str());
37 DCHECK(dbus_data_plans.empty()); 41 DCHECK(dbus_data_plans.empty());
38 return dbus_data_plans; 42 return dbus_data_plans;
39 } 43 }
40 dbus_data_plans = service->GetDBusDataPlans(); 44 dbus_data_plans = service->GetDBusDataPlans();
41 return dbus_data_plans; 45 return dbus_data_plans;
42 } 46 }
43 47
44 void CashewServer::RequestDataPlansUpdate(const std::string& service_path, 48 void CashewServer::RequestDataPlansUpdate(const std::string& service_path,
45 DBus::Error& error) { // NOLINT 49 DBus::Error& error) { // NOLINT
46 DLOG(INFO) << "RequestDataPlansUpdate: service = " << service_path; 50 DLOG(INFO) << "RequestDataPlansUpdate: service = " << service_path;
47 const Service *service = service_manager_.GetService(service_path); 51 const Service *service = service_manager_->GetService(service_path);
48 if (service == NULL) { 52 if (service == NULL) {
49 DLOG(WARNING) << "RequestDataPlansUpdate: unknown service: " 53 DLOG(WARNING) << "RequestDataPlansUpdate: unknown service: "
50 << service_path; 54 << service_path;
51 error.set(kCashewErrorServiceUnknown, service_path.c_str()); 55 error.set(kCashewErrorServiceUnknown, service_path.c_str());
52 return; 56 return;
53 } 57 }
54 58
55 // trigger a DataPlansUpdate signal 59 // trigger a DataPlansUpdate signal
56 // TODO(vlaviano): rate-limiting? 60 // TODO(vlaviano): rate-limiting?
57 // TODO(vlaviano): if cached data isn't recent, ask carrier API for fresh 61 // TODO(vlaviano): if cached data isn't recent, ask carrier API for fresh
58 // data and wait for reply before sending signal. 62 // data and wait for reply before sending signal.
59 EmitDataPlansUpdateSignal(*service); 63 EmitDataPlansUpdateSignal(*service);
60 } 64 }
61 65
62 bool CashewServer::IsAlive(DBus::Error& error) { // NOLINT 66 bool CashewServer::IsAlive(DBus::Error& error) { // NOLINT
63 DLOG(INFO) << "IsAlive"; 67 DLOG(INFO) << "IsAlive";
64 return true; 68 return true;
65 } 69 }
66 70
71 // Service Manager methods
72
73 void CashewServer::EmitDataPlansUpdate(const Service& service) {
74 EmitDataPlansUpdateSignal(service);
75 }
76
67 // Private methods 77 // Private methods
68 78
69 void CashewServer::EmitDataPlansUpdateSignal(const Service& service) { 79 void CashewServer::EmitDataPlansUpdateSignal(const Service& service) {
70 DLOG(INFO) << "EmitDataPlansUpdateSignal: service = " << service.GetPath(); 80 DLOG(INFO) << "EmitDataPlansUpdateSignal: service = " << service.GetPath();
71 DBusDataPlanList dbus_data_plans = service.GetDBusDataPlans(); 81 DBusDataPlanList dbus_data_plans = service.GetDBusDataPlans();
72 82
73 // send out the signal 83 // send out the signal
74 DataPlansUpdate(service.GetPath(), dbus_data_plans); 84 DataPlansUpdate(service.GetPath(), dbus_data_plans);
75 } 85 }
76 86
77 } // namespace cashew 87 } // namespace cashew
OLDNEW
« no previous file with comments | « src/cashew_server.h ('k') | src/data_plan.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698