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

Unified Diff: chromeos/dbus/biod/biod_client.cc

Issue 2581403002: cros: Remaining interfaces for DBUS biometrics client. (Closed)
Patch Set: Rebased. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/dbus/biod/biod_client.h ('k') | chromeos/dbus/biod/biod_client_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/biod/biod_client.cc
diff --git a/chromeos/dbus/biod/biod_client.cc b/chromeos/dbus/biod/biod_client.cc
index 6bc3b59695b9f600b30403caa5fae43b012892fe..58e7a09abd539cd85b8bf7c0b235662884432149 100644
--- a/chromeos/dbus/biod/biod_client.cc
+++ b/chromeos/dbus/biod/biod_client.cc
@@ -18,7 +18,7 @@ namespace chromeos {
// The BiodClient implementation used in production.
class BiodClientImpl : public BiodClient {
public:
- BiodClientImpl() : biod_proxy_(nullptr), weak_ptr_factory_(this) {}
+ BiodClientImpl() : weak_ptr_factory_(this) {}
~BiodClientImpl() override {}
@@ -99,8 +99,74 @@ class BiodClientImpl : public BiodClient {
weak_ptr_factory_.GetWeakPtr(), callback));
}
+ void CancelEnrollSession(
+ const dbus::ObjectPath& enroll_session_path) override {
+ dbus::MethodCall method_call(biod::kEnrollSessionInterface,
+ biod::kEnrollSessionCancelMethod);
+
+ dbus::ObjectProxy* enroll_session_proxy =
+ bus_->GetObjectProxy(biod::kBiodServiceName, enroll_session_path);
+ enroll_session_proxy->CallMethod(
+ &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ dbus::ObjectProxy::EmptyResponseCallback());
+ }
+
+ void EndAuthSession(const dbus::ObjectPath& auth_session_path) override {
+ dbus::MethodCall method_call(biod::kAuthSessionInterface,
+ biod::kAuthSessionEndMethod);
+
+ dbus::ObjectProxy* auth_session_proxy =
+ bus_->GetObjectProxy(biod::kBiodServiceName, auth_session_path);
+ auth_session_proxy->CallMethod(&method_call,
+ dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ dbus::ObjectProxy::EmptyResponseCallback());
+ }
+
+ void SetRecordLabel(const dbus::ObjectPath& record_path,
+ const std::string& label) override {
+ dbus::MethodCall method_call(biod::kRecordInterface,
+ biod::kRecordSetLabelMethod);
+ dbus::MessageWriter writer(&method_call);
+ writer.AppendString(label);
+
+ dbus::ObjectProxy* record_proxy =
+ bus_->GetObjectProxy(biod::kBiodServiceName, record_path);
+ record_proxy->CallMethod(&method_call,
+ dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ dbus::ObjectProxy::EmptyResponseCallback());
+ }
+
+ void RemoveRecord(const dbus::ObjectPath& record_path) override {
+ dbus::MethodCall method_call(biod::kRecordInterface,
+ biod::kRecordRemoveMethod);
+
+ dbus::ObjectProxy* record_proxy =
+ bus_->GetObjectProxy(biod::kBiodServiceName, record_path);
+ record_proxy->CallMethod(&method_call,
+ dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ dbus::ObjectProxy::EmptyResponseCallback());
+ }
+
+ void RequestRecordLabel(const dbus::ObjectPath& record_path,
+ const LabelCallback& callback) override {
+ dbus::MethodCall method_call(dbus::kDBusPropertiesInterface,
+ dbus::kDBusPropertiesGet);
+ dbus::MessageWriter writer(&method_call);
+ writer.AppendString(biod::kRecordInterface);
+ writer.AppendString(biod::kRecordLabelProperty);
+
+ dbus::ObjectProxy* record_proxy =
+ bus_->GetObjectProxy(biod::kBiodServiceName, record_path);
+ record_proxy->CallMethod(
+ &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ base::Bind(&BiodClientImpl::OnRequestRecordLabel,
+ weak_ptr_factory_.GetWeakPtr(), callback));
+ }
+
protected:
void Init(dbus::Bus* bus) override {
+ bus_ = bus;
+
biod_proxy_ = bus->GetObjectProxy(biod::kBiodServiceName,
dbus::ObjectPath(biod::kBiodServicePath));
@@ -191,6 +257,18 @@ class BiodClientImpl : public BiodClient {
callback.Run(static_cast<biod::BiometricType>(result));
}
+ void OnRequestRecordLabel(const LabelCallback& callback,
+ dbus::Response* response) {
+ std::string result;
+ if (response) {
+ dbus::MessageReader reader(response);
+ if (!reader.PopString(&result))
+ LOG(ERROR) << biod::kRecordLabelProperty << " had incorrect response.";
+ }
+
+ callback.Run(result);
+ }
+
// Called when the biometrics signal is initially connected.
void OnSignalConnected(const std::string& interface_name,
const std::string& signal_name,
@@ -262,7 +340,8 @@ class BiodClientImpl : public BiodClient {
observer.BiodSessionFailedReceived();
}
- dbus::ObjectProxy* biod_proxy_;
+ dbus::Bus* bus_ = nullptr;
+ dbus::ObjectProxy* biod_proxy_ = nullptr;
base::ObserverList<Observer> observers_;
// Note: This should remain the last member so it'll be destroyed and
« no previous file with comments | « chromeos/dbus/biod/biod_client.h ('k') | chromeos/dbus/biod/biod_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698