OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium 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 "chromeos/network/network_configuration_handler.h" | 5 #include "chromeos/network/network_configuration_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/values.h" | 14 #include "base/values.h" |
15 #include "chromeos/dbus/dbus_method_call_status.h" | 15 #include "chromeos/dbus/dbus_method_call_status.h" |
16 #include "chromeos/dbus/dbus_thread_manager.h" | 16 #include "chromeos/dbus/dbus_thread_manager.h" |
17 #include "chromeos/dbus/shill_manager_client.h" | 17 #include "chromeos/dbus/shill_manager_client.h" |
18 #include "chromeos/dbus/shill_service_client.h" | 18 #include "chromeos/dbus/shill_service_client.h" |
19 #include "dbus/object_path.h" | 19 #include "dbus/object_path.h" |
20 | 20 |
21 namespace chromeos { | 21 namespace chromeos { |
22 | 22 |
23 static NetworkConfigurationHandler* g_network_configuration_handler = NULL; | |
24 | |
25 namespace { | 23 namespace { |
26 | 24 |
27 const char kLogModule[] = "NetworkConfigurationHandler"; | 25 const char kLogModule[] = "NetworkConfigurationHandler"; |
28 | 26 |
| 27 NetworkConfigurationHandler* g_configuration_handler_instance = NULL; |
| 28 |
29 // None of these error messages are user-facing: they should only appear in | 29 // None of these error messages are user-facing: they should only appear in |
30 // logs. | 30 // logs. |
31 const char kErrorsListTag[] = "errors"; | 31 const char kErrorsListTag[] = "errors"; |
32 const char kClearPropertiesFailedError[] = "Error.ClearPropertiesFailed"; | 32 const char kClearPropertiesFailedError[] = "Error.ClearPropertiesFailed"; |
33 const char kClearPropertiesFailedErrorMessage[] = "Clear properties failed"; | 33 const char kClearPropertiesFailedErrorMessage[] = "Clear properties failed"; |
34 const char kDBusFailedError[] = "Error.DBusFailed"; | 34 const char kDBusFailedError[] = "Error.DBusFailed"; |
35 const char kDBusFailedErrorMessage[] = "DBus call failed."; | 35 const char kDBusFailedErrorMessage[] = "DBus call failed."; |
36 | 36 |
37 void ClearPropertiesCallback( | 37 void ClearPropertiesCallback( |
38 const std::vector<std::string>& names, | 38 const std::vector<std::string>& names, |
(...skipping 14 matching lines...) Expand all Loading... |
53 } | 53 } |
54 } | 54 } |
55 | 55 |
56 if (some_failed) { | 56 if (some_failed) { |
57 DCHECK(names.size() == result.GetSize()) | 57 DCHECK(names.size() == result.GetSize()) |
58 << "Result wrong size from ClearProperties."; | 58 << "Result wrong size from ClearProperties."; |
59 scoped_ptr<base::DictionaryValue> error_data( | 59 scoped_ptr<base::DictionaryValue> error_data( |
60 network_handler::CreateErrorData(service_path, | 60 network_handler::CreateErrorData(service_path, |
61 kClearPropertiesFailedError, | 61 kClearPropertiesFailedError, |
62 kClearPropertiesFailedErrorMessage)); | 62 kClearPropertiesFailedErrorMessage)); |
63 LOG(ERROR) << "ClearPropertiesCallback Failed for service path: " | 63 LOG(ERROR) << "ClearPropertiesCallback failed for service path: " |
64 << service_path; | 64 << service_path; |
65 error_data->Set("errors", result.DeepCopy()); | 65 error_data->Set("errors", result.DeepCopy()); |
66 scoped_ptr<base::ListValue> name_list(new base::ListValue); | 66 scoped_ptr<base::ListValue> name_list(new base::ListValue); |
67 name_list->AppendStrings(names); | 67 name_list->AppendStrings(names); |
68 error_data->Set("names", name_list.release()); | 68 error_data->Set("names", name_list.release()); |
69 error_callback.Run(kClearPropertiesFailedError, error_data.Pass()); | 69 error_callback.Run(kClearPropertiesFailedError, error_data.Pass()); |
70 } else { | 70 } else { |
71 callback.Run(); | 71 callback.Run(); |
72 } | 72 } |
73 } | 73 } |
74 | 74 |
75 // Used to translate the dbus dictionary callback into one that calls | 75 // Used to translate the dbus dictionary callback into one that calls |
76 // the error callback if we have a failure. | 76 // the error callback if we have a failure. |
77 void RunCallbackWithDictionaryValue( | 77 void RunCallbackWithDictionaryValue( |
78 const network_handler::DictionaryResultCallback& callback, | 78 const network_handler::DictionaryResultCallback& callback, |
79 const network_handler::ErrorCallback& error_callback, | 79 const network_handler::ErrorCallback& error_callback, |
80 const std::string& service_path, | 80 const std::string& service_path, |
81 DBusMethodCallStatus call_status, | 81 DBusMethodCallStatus call_status, |
82 const base::DictionaryValue& value) { | 82 const base::DictionaryValue& value) { |
83 if (call_status != DBUS_METHOD_CALL_SUCCESS) { | 83 if (call_status != DBUS_METHOD_CALL_SUCCESS) { |
84 scoped_ptr<base::DictionaryValue> error_data( | 84 scoped_ptr<base::DictionaryValue> error_data( |
85 network_handler::CreateErrorData(service_path, | 85 network_handler::CreateErrorData(service_path, |
86 kDBusFailedError, | 86 kDBusFailedError, |
87 kDBusFailedErrorMessage)); | 87 kDBusFailedErrorMessage)); |
88 LOG(ERROR) << "CallbackWithDictionaryValue Failed for service path: " | 88 LOG(ERROR) << "CallbackWithDictionaryValue failed for service path: " |
89 << service_path; | 89 << service_path; |
90 error_callback.Run(kDBusFailedError, error_data.Pass()); | 90 error_callback.Run(kDBusFailedError, error_data.Pass()); |
91 } else { | 91 } else { |
92 callback.Run(service_path, value); | 92 callback.Run(service_path, value); |
93 } | 93 } |
94 } | 94 } |
95 | 95 |
96 void RunCreateNetworkCallback( | 96 void RunCreateNetworkCallback( |
97 const network_handler::StringResultCallback& callback, | 97 const network_handler::StringResultCallback& callback, |
98 const dbus::ObjectPath& service_path) { | 98 const dbus::ObjectPath& service_path) { |
99 callback.Run(service_path.value()); | 99 callback.Run(service_path.value()); |
100 } | 100 } |
101 | 101 |
102 void IgnoreObjectPathCallback(const base::Closure& callback, | 102 void IgnoreObjectPathCallback(const base::Closure& callback, |
103 const dbus::ObjectPath& object_path) { | 103 const dbus::ObjectPath& object_path) { |
104 callback.Run(); | 104 callback.Run(); |
105 } | 105 } |
106 | 106 |
107 } // namespace | 107 } // namespace |
108 | 108 |
109 NetworkConfigurationHandler::NetworkConfigurationHandler() { | |
110 } | |
111 | |
112 NetworkConfigurationHandler::~NetworkConfigurationHandler() { | |
113 } | |
114 | |
115 // static | 109 // static |
116 void NetworkConfigurationHandler::Initialize() { | 110 void NetworkConfigurationHandler::Initialize() { |
117 CHECK(!g_network_configuration_handler); | 111 CHECK(!g_configuration_handler_instance); |
118 g_network_configuration_handler = new NetworkConfigurationHandler(); | 112 g_configuration_handler_instance = new NetworkConfigurationHandler; |
119 } | 113 } |
120 | 114 |
121 // static | 115 // static |
122 void NetworkConfigurationHandler::Shutdown() { | 116 void NetworkConfigurationHandler::Shutdown() { |
123 CHECK(g_network_configuration_handler); | 117 CHECK(g_configuration_handler_instance); |
124 delete g_network_configuration_handler; | 118 delete g_configuration_handler_instance; |
125 g_network_configuration_handler = NULL; | 119 g_configuration_handler_instance = NULL; |
126 } | 120 } |
127 | 121 |
128 // static | 122 // static |
129 NetworkConfigurationHandler* NetworkConfigurationHandler::Get() { | 123 NetworkConfigurationHandler* NetworkConfigurationHandler::Get() { |
130 CHECK(g_network_configuration_handler) | 124 CHECK(g_configuration_handler_instance) |
131 << "NetworkConfigurationHandler::Get() called before Initialize()"; | 125 << "NetworkConfigurationHandler::Get() called before Initialize()"; |
132 return g_network_configuration_handler; | 126 return g_configuration_handler_instance; |
133 } | 127 } |
134 | 128 |
135 void NetworkConfigurationHandler::GetProperties( | 129 void NetworkConfigurationHandler::GetProperties( |
136 const std::string& service_path, | 130 const std::string& service_path, |
137 const network_handler::DictionaryResultCallback& callback, | 131 const network_handler::DictionaryResultCallback& callback, |
138 const network_handler::ErrorCallback& error_callback) const { | 132 const network_handler::ErrorCallback& error_callback) const { |
139 DBusThreadManager::Get()->GetShillServiceClient()->GetProperties( | 133 DBusThreadManager::Get()->GetShillServiceClient()->GetProperties( |
140 dbus::ObjectPath(service_path), | 134 dbus::ObjectPath(service_path), |
141 base::Bind(&RunCallbackWithDictionaryValue, | 135 base::Bind(&RunCallbackWithDictionaryValue, |
142 callback, | 136 callback, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 const std::string& service_path, | 204 const std::string& service_path, |
211 const base::Closure& callback, | 205 const base::Closure& callback, |
212 const network_handler::ErrorCallback& error_callback) const { | 206 const network_handler::ErrorCallback& error_callback) const { |
213 DBusThreadManager::Get()->GetShillServiceClient()->Remove( | 207 DBusThreadManager::Get()->GetShillServiceClient()->Remove( |
214 dbus::ObjectPath(service_path), | 208 dbus::ObjectPath(service_path), |
215 callback, | 209 callback, |
216 base::Bind(&network_handler::ShillErrorCallbackFunction, | 210 base::Bind(&network_handler::ShillErrorCallbackFunction, |
217 kLogModule, service_path, error_callback)); | 211 kLogModule, service_path, error_callback)); |
218 } | 212 } |
219 | 213 |
| 214 NetworkConfigurationHandler::NetworkConfigurationHandler() { |
| 215 } |
| 216 |
| 217 NetworkConfigurationHandler::~NetworkConfigurationHandler() { |
| 218 } |
| 219 |
220 } // namespace chromeos | 220 } // namespace chromeos |
OLD | NEW |