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

Unified Diff: chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.cc

Issue 11744030: Try 2 [Media Gallery] Move chrome/browser/media_transfer_protocol code to src/device. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed gyp dependencies. Created 7 years, 12 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
Index: chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
diff --git a/chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.cc b/chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
deleted file mode 100644
index c88df8a7bb4ba10665fc0f39740c629636dbcf27..0000000000000000000000000000000000000000
--- a/chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
+++ /dev/null
@@ -1,489 +0,0 @@
-// Copyright (c) 2012 The Chromium 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 "chrome/browser/media_transfer_protocol/media_transfer_protocol_daemon_client.h"
-
-#include "base/bind.h"
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/media_transfer_protocol/mtp_file_entry.pb.h"
-#include "chrome/browser/media_transfer_protocol/mtp_storage_info.pb.h"
-#include "dbus/bus.h"
-#include "dbus/message.h"
-#include "dbus/object_path.h"
-#include "dbus/object_proxy.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
-
-namespace chrome {
-
-namespace {
-
-const char kInvalidResponseMsg[] = "Invalid Response: ";
-
-// The MediaTransferProtocolDaemonClient implementation.
-class MediaTransferProtocolDaemonClientImpl
- : public MediaTransferProtocolDaemonClient {
- public:
- explicit MediaTransferProtocolDaemonClientImpl(dbus::Bus* bus)
- : proxy_(bus->GetObjectProxy(
- mtpd::kMtpdServiceName,
- dbus::ObjectPath(mtpd::kMtpdServicePath))),
- weak_ptr_factory_(this) {
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void EnumerateStorages(const EnumerateStoragesCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kEnumerateStorages);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnEnumerateStorages,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void GetStorageInfo(const std::string& storage_name,
- const GetStorageInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface, mtpd::kGetStorageInfo);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(storage_name);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnGetStorageInfo,
- weak_ptr_factory_.GetWeakPtr(),
- storage_name,
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void OpenStorage(const std::string& storage_name,
- const std::string& mode,
- const OpenStorageCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface, mtpd::kOpenStorage);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(storage_name);
- DCHECK_EQ(mtpd::kReadOnlyMode, mode);
- writer.AppendString(mtpd::kReadOnlyMode);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnOpenStorage,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void CloseStorage(const std::string& handle,
- const CloseStorageCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface, mtpd::kCloseStorage);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnCloseStorage,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void ReadDirectoryByPath(
- const std::string& handle,
- const std::string& path,
- const ReadDirectoryCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kReadDirectoryByPath);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendString(path);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnReadDirectory,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void ReadDirectoryById(
- const std::string& handle,
- uint32 file_id,
- const ReadDirectoryCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kReadDirectoryById);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendUint32(file_id);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnReadDirectory,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void ReadFileChunkByPath(
- const std::string& handle,
- const std::string& path,
- uint32 offset,
- uint32 bytes_to_read,
- const ReadFileCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kReadFileChunkByPath);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendString(path);
- writer.AppendUint32(offset);
- writer.AppendUint32(bytes_to_read);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnReadFile,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void ReadFileChunkById(const std::string& handle,
- uint32 file_id,
- uint32 offset,
- uint32 bytes_to_read,
- const ReadFileCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kReadFileChunkById);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendUint32(file_id);
- writer.AppendUint32(offset);
- writer.AppendUint32(bytes_to_read);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnReadFile,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void GetFileInfoByPath(const std::string& handle,
- const std::string& path,
- const GetFileInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface,
- mtpd::kGetFileInfoByPath);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendString(path);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnGetFileInfo,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void GetFileInfoById(const std::string& handle,
- uint32 file_id,
- const GetFileInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
- dbus::MethodCall method_call(mtpd::kMtpdInterface, mtpd::kGetFileInfoById);
- dbus::MessageWriter writer(&method_call);
- writer.AppendString(handle);
- writer.AppendUint32(file_id);
- proxy_->CallMethod(
- &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnGetFileInfo,
- weak_ptr_factory_.GetWeakPtr(),
- callback,
- error_callback));
- }
-
- // MediaTransferProtocolDaemonClient override.
- virtual void SetUpConnections(
- const MTPStorageEventHandler& handler) OVERRIDE {
- static const SignalEventTuple kSignalEventTuples[] = {
- { mtpd::kMTPStorageAttached, true },
- { mtpd::kMTPStorageDetached, false },
- };
- const size_t kNumSignalEventTuples = arraysize(kSignalEventTuples);
-
- for (size_t i = 0; i < kNumSignalEventTuples; ++i) {
- proxy_->ConnectToSignal(
- mtpd::kMtpdInterface,
- kSignalEventTuples[i].signal_name,
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnMTPStorageSignal,
- weak_ptr_factory_.GetWeakPtr(),
- handler,
- kSignalEventTuples[i].is_attach),
- base::Bind(&MediaTransferProtocolDaemonClientImpl::OnSignalConnected,
- weak_ptr_factory_.GetWeakPtr()));
- }
- }
-
- private:
- // A struct to contain a pair of signal name and attachment event type.
- // Used by SetUpConnections.
- struct SignalEventTuple {
- const char *signal_name;
- bool is_attach;
- };
-
- // Handles the result of EnumerateStorages and calls |callback| or
- // |error_callback|.
- void OnEnumerateStorages(const EnumerateStoragesCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
- dbus::MessageReader reader(response);
- std::vector<std::string> storage_names;
- if (!reader.PopArrayOfStrings(&storage_names)) {
- LOG(ERROR) << kInvalidResponseMsg << response->ToString();
- error_callback.Run();
- return;
- }
- callback.Run(storage_names);
- }
-
- // Handles the result of GetStorageInfo and calls |callback| or
- // |error_callback|.
- void OnGetStorageInfo(const std::string& storage_name,
- const GetStorageInfoCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
-
- dbus::MessageReader reader(response);
- MtpStorageInfo protobuf;
- if (!reader.PopArrayOfBytesAsProto(&protobuf)) {
- LOG(ERROR) << kInvalidResponseMsg << response->ToString();
- error_callback.Run();
- return;
- }
- callback.Run(protobuf);
- }
-
- // Handles the result of OpenStorage and calls |callback| or |error_callback|.
- void OnOpenStorage(const OpenStorageCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
- dbus::MessageReader reader(response);
- std::string handle;
- if (!reader.PopString(&handle)) {
- LOG(ERROR) << kInvalidResponseMsg << response->ToString();
- error_callback.Run();
- return;
- }
- callback.Run(handle);
- }
-
- // Handles the result of CloseStorage and calls |callback| or
- // |error_callback|.
- void OnCloseStorage(const CloseStorageCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
- callback.Run();
- }
-
- // Handles the result of ReadDirectoryByPath/Id and calls |callback| or
- // |error_callback|.
- void OnReadDirectory(const ReadDirectoryCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
-
- std::vector<MtpFileEntry> file_entries;
- dbus::MessageReader reader(response);
- MtpFileEntries entries_protobuf;
- if (!reader.PopArrayOfBytesAsProto(&entries_protobuf)) {
- LOG(ERROR) << kInvalidResponseMsg << response->ToString();
- error_callback.Run();
- return;
- }
-
- for (int i = 0; i < entries_protobuf.file_entries_size(); ++i)
- file_entries.push_back(entries_protobuf.file_entries(i));
- callback.Run(file_entries);
- }
-
- // Handles the result of ReadFileChunkByPath/Id and calls |callback| or
- // |error_callback|.
- void OnReadFile(const ReadFileCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
-
- uint8* data_bytes = NULL;
- size_t data_length = 0;
- dbus::MessageReader reader(response);
- if (!reader.PopArrayOfBytes(&data_bytes, &data_length)) {
- error_callback.Run();
- return;
- }
- std::string data(reinterpret_cast<const char*>(data_bytes), data_length);
- callback.Run(data);
- }
-
- // Handles the result of GetFileInfoByPath/Id and calls |callback| or
- // |error_callback|.
- void OnGetFileInfo(const GetFileInfoCallback& callback,
- const ErrorCallback& error_callback,
- dbus::Response* response) {
- if (!response) {
- error_callback.Run();
- return;
- }
-
- dbus::MessageReader reader(response);
- MtpFileEntry protobuf;
- if (!reader.PopArrayOfBytesAsProto(&protobuf)) {
- LOG(ERROR) << kInvalidResponseMsg << response->ToString();
- error_callback.Run();
- return;
- }
- callback.Run(protobuf);
- }
-
- // Handles MTPStorageAttached/Dettached signals and calls |handler|.
- void OnMTPStorageSignal(MTPStorageEventHandler handler,
- bool is_attach,
- dbus::Signal* signal) {
- dbus::MessageReader reader(signal);
- std::string storage_name;
- if (!reader.PopString(&storage_name)) {
- LOG(ERROR) << "Invalid signal: " << signal->ToString();
- return;
- }
- DCHECK(!storage_name.empty());
- handler.Run(is_attach, storage_name);
- }
-
-
- // Handles the result of signal connection setup.
- void OnSignalConnected(const std::string& interface,
- const std::string& signal,
- bool succeeded) {
- LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " "
- << signal << " failed.";
- }
-
- dbus::ObjectProxy* proxy_;
-
- // Note: This should remain the last member so it'll be destroyed and
- // invalidate its weak pointers before any other members are destroyed.
- base::WeakPtrFactory<MediaTransferProtocolDaemonClientImpl> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaTransferProtocolDaemonClientImpl);
-};
-
-// A stub implementaion of MediaTransferProtocolDaemonClient.
-class MediaTransferProtocolDaemonClientStubImpl
- : public MediaTransferProtocolDaemonClient {
- public:
- MediaTransferProtocolDaemonClientStubImpl() {}
- virtual ~MediaTransferProtocolDaemonClientStubImpl() {}
-
- virtual void EnumerateStorages(
- const EnumerateStoragesCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void GetStorageInfo(
- const std::string& storage_name,
- const GetStorageInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void OpenStorage(const std::string& storage_name,
- const std::string& mode,
- const OpenStorageCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void CloseStorage(const std::string& handle,
- const CloseStorageCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void ReadDirectoryByPath(
- const std::string& handle,
- const std::string& path,
- const ReadDirectoryCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void ReadDirectoryById(
- const std::string& handle,
- uint32 file_id,
- const ReadDirectoryCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void ReadFileChunkByPath(
- const std::string& handle,
- const std::string& path,
- uint32 offset,
- uint32 length,
- const ReadFileCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void ReadFileChunkById(
- const std::string& handle,
- uint32 file_id,
- uint32 offset,
- uint32 length,
- const ReadFileCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void GetFileInfoByPath(
- const std::string& handle,
- const std::string& path,
- const GetFileInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void GetFileInfoById(const std::string& handle,
- uint32 file_id,
- const GetFileInfoCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {}
- virtual void SetUpConnections(
- const MTPStorageEventHandler& handler) OVERRIDE {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MediaTransferProtocolDaemonClientStubImpl);
-};
-
-} // namespace
-
-////////////////////////////////////////////////////////////////////////////////
-// MediaTransferProtocolDaemonClient
-
-MediaTransferProtocolDaemonClient::MediaTransferProtocolDaemonClient() {}
-
-MediaTransferProtocolDaemonClient::~MediaTransferProtocolDaemonClient() {}
-
-// static
-MediaTransferProtocolDaemonClient*
-MediaTransferProtocolDaemonClient::Create(dbus::Bus* bus, bool is_stub) {
- if (is_stub)
- return new MediaTransferProtocolDaemonClientStubImpl();
- return new MediaTransferProtocolDaemonClientImpl(bus);
-}
-
-} // namespace chrome

Powered by Google App Engine
This is Rietveld 408576698