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

Side by Side Diff: chromeos/dbus/cryptohome_client.cc

Issue 2101853002: Add signal handler for low disk notification (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove obsolete mock method Created 4 years, 5 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
« no previous file with comments | « chromeos/dbus/cryptohome_client.h ('k') | chromeos/dbus/fake_cryptohome_client.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) 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/dbus/cryptohome_client.h" 5 #include "chromeos/dbus/cryptohome_client.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 async_call_status_data_handler_ = data_handler; 56 async_call_status_data_handler_ = data_handler;
57 } 57 }
58 58
59 // CryptohomeClient override. 59 // CryptohomeClient override.
60 void ResetAsyncCallStatusHandlers() override { 60 void ResetAsyncCallStatusHandlers() override {
61 async_call_status_handler_.Reset(); 61 async_call_status_handler_.Reset();
62 async_call_status_data_handler_.Reset(); 62 async_call_status_data_handler_.Reset();
63 } 63 }
64 64
65 // CryptohomeClient override. 65 // CryptohomeClient override.
66 void SetLowDiskSpaceHandler(const LowDiskSpaceHandler& handler) override {
67 low_disk_space_handler_ = handler;
68 }
69
70 // CryptohomeClient override.
66 void WaitForServiceToBeAvailable( 71 void WaitForServiceToBeAvailable(
67 const WaitForServiceToBeAvailableCallback& callback) override { 72 const WaitForServiceToBeAvailableCallback& callback) override {
68 proxy_->WaitForServiceToBeAvailable(callback); 73 proxy_->WaitForServiceToBeAvailable(callback);
69 } 74 }
70 75
71 // CryptohomeClient override. 76 // CryptohomeClient override.
72 void IsMounted(const BoolDBusMethodCallback& callback) override { 77 void IsMounted(const BoolDBusMethodCallback& callback) override {
73 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, 78 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface,
74 cryptohome::kCryptohomeIsMounted); 79 cryptohome::kCryptohomeIsMounted);
75 CallBoolMethod(&method_call, callback); 80 CallBoolMethod(&method_call, callback);
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 weak_ptr_factory_.GetWeakPtr()), 926 weak_ptr_factory_.GetWeakPtr()),
922 base::Bind(&CryptohomeClientImpl::OnSignalConnected, 927 base::Bind(&CryptohomeClientImpl::OnSignalConnected,
923 weak_ptr_factory_.GetWeakPtr())); 928 weak_ptr_factory_.GetWeakPtr()));
924 proxy_->ConnectToSignal( 929 proxy_->ConnectToSignal(
925 cryptohome::kCryptohomeInterface, 930 cryptohome::kCryptohomeInterface,
926 cryptohome::kSignalAsyncCallStatusWithData, 931 cryptohome::kSignalAsyncCallStatusWithData,
927 base::Bind(&CryptohomeClientImpl::OnAsyncCallStatusWithData, 932 base::Bind(&CryptohomeClientImpl::OnAsyncCallStatusWithData,
928 weak_ptr_factory_.GetWeakPtr()), 933 weak_ptr_factory_.GetWeakPtr()),
929 base::Bind(&CryptohomeClientImpl::OnSignalConnected, 934 base::Bind(&CryptohomeClientImpl::OnSignalConnected,
930 weak_ptr_factory_.GetWeakPtr())); 935 weak_ptr_factory_.GetWeakPtr()));
936 proxy_->ConnectToSignal(cryptohome::kCryptohomeInterface,
937 cryptohome::kSignalLowDiskSpace,
938 base::Bind(&CryptohomeClientImpl::OnLowDiskSpace,
939 weak_ptr_factory_.GetWeakPtr()),
940 base::Bind(&CryptohomeClientImpl::OnSignalConnected,
941 weak_ptr_factory_.GetWeakPtr()));
931 } 942 }
932 943
933 private: 944 private:
934 // Handles the result of AsyncXXX methods. 945 // Handles the result of AsyncXXX methods.
935 void OnAsyncMethodCall(const AsyncMethodCallback& callback, 946 void OnAsyncMethodCall(const AsyncMethodCallback& callback,
936 dbus::Response* response) { 947 dbus::Response* response) {
937 if (!response) { 948 if (!response) {
938 callback.Run(kNotReadyAsyncId); 949 callback.Run(kNotReadyAsyncId);
939 return; 950 return;
940 } 951 }
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 LOG(ERROR) << "Invalid signal: " << signal->ToString(); 1153 LOG(ERROR) << "Invalid signal: " << signal->ToString();
1143 return; 1154 return;
1144 } 1155 }
1145 if (!async_call_status_data_handler_.is_null()) { 1156 if (!async_call_status_data_handler_.is_null()) {
1146 std::string return_data(reinterpret_cast<const char*>(return_data_buffer), 1157 std::string return_data(reinterpret_cast<const char*>(return_data_buffer),
1147 return_data_length); 1158 return_data_length);
1148 async_call_status_data_handler_.Run(async_id, return_status, return_data); 1159 async_call_status_data_handler_.Run(async_id, return_status, return_data);
1149 } 1160 }
1150 } 1161 }
1151 1162
1163 // Handles LowDiskSpace signal.
1164 void OnLowDiskSpace(dbus::Signal* signal) {
1165 dbus::MessageReader reader(signal);
1166 uint64_t disk_free_bytes = 0;
1167 if (!reader.PopUint64(&disk_free_bytes)) {
1168 LOG(ERROR) << "Invalid signal: " << signal->ToString();
1169 return;
1170 }
1171 if (!low_disk_space_handler_.is_null())
1172 low_disk_space_handler_.Run(disk_free_bytes);
1173 }
1174
1152 // Handles the result of signal connection setup. 1175 // Handles the result of signal connection setup.
1153 void OnSignalConnected(const std::string& interface, 1176 void OnSignalConnected(const std::string& interface,
1154 const std::string& signal, 1177 const std::string& signal,
1155 bool succeeded) { 1178 bool succeeded) {
1156 LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " << 1179 LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " <<
1157 signal << " failed."; 1180 signal << " failed.";
1158 } 1181 }
1159 1182
1160 dbus::ObjectProxy* proxy_; 1183 dbus::ObjectProxy* proxy_;
1161 std::unique_ptr<BlockingMethodCaller> blocking_method_caller_; 1184 std::unique_ptr<BlockingMethodCaller> blocking_method_caller_;
1162 AsyncCallStatusHandler async_call_status_handler_; 1185 AsyncCallStatusHandler async_call_status_handler_;
1163 AsyncCallStatusWithDataHandler async_call_status_data_handler_; 1186 AsyncCallStatusWithDataHandler async_call_status_data_handler_;
1187 LowDiskSpaceHandler low_disk_space_handler_;
1164 1188
1165 // Note: This should remain the last member so it'll be destroyed and 1189 // Note: This should remain the last member so it'll be destroyed and
1166 // invalidate its weak pointers before any other members are destroyed. 1190 // invalidate its weak pointers before any other members are destroyed.
1167 base::WeakPtrFactory<CryptohomeClientImpl> weak_ptr_factory_; 1191 base::WeakPtrFactory<CryptohomeClientImpl> weak_ptr_factory_;
1168 1192
1169 DISALLOW_COPY_AND_ASSIGN(CryptohomeClientImpl); 1193 DISALLOW_COPY_AND_ASSIGN(CryptohomeClientImpl);
1170 }; 1194 };
1171 1195
1172 } // namespace 1196 } // namespace
1173 1197
1174 //////////////////////////////////////////////////////////////////////////////// 1198 ////////////////////////////////////////////////////////////////////////////////
1175 // CryptohomeClient 1199 // CryptohomeClient
1176 1200
1177 CryptohomeClient::CryptohomeClient() {} 1201 CryptohomeClient::CryptohomeClient() {}
1178 1202
1179 CryptohomeClient::~CryptohomeClient() {} 1203 CryptohomeClient::~CryptohomeClient() {}
1180 1204
1181 // static 1205 // static
1182 CryptohomeClient* CryptohomeClient::Create() { 1206 CryptohomeClient* CryptohomeClient::Create() {
1183 return new CryptohomeClientImpl(); 1207 return new CryptohomeClientImpl();
1184 } 1208 }
1185 1209
1186 // static 1210 // static
1187 std::string CryptohomeClient::GetStubSanitizedUsername( 1211 std::string CryptohomeClient::GetStubSanitizedUsername(
1188 const cryptohome::Identification& cryptohome_id) { 1212 const cryptohome::Identification& cryptohome_id) {
1189 return cryptohome_id.id() + kUserIdStubHashSuffix; 1213 return cryptohome_id.id() + kUserIdStubHashSuffix;
1190 } 1214 }
1191 1215
1192 } // namespace chromeos 1216 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/cryptohome_client.h ('k') | chromeos/dbus/fake_cryptohome_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698