From 9c04c4cc038f924d9cb98798e1c07fe6017e85d0 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 2 Aug 2010 10:37:41 -0400 Subject: Clean up MtpDatabase API. Return MTP response codes instead of booleans for success or failure. Remove some unused code. Change-Id: I82ce80a4d7779233264e3caf139ebd0cece12f5c Signed-off-by: Mike Lockwood --- media/mtp/MtpDatabase.h | 8 ++------ media/mtp/MtpServer.cpp | 36 +++++++++++++++++------------------- 2 files changed, 19 insertions(+), 25 deletions(-) (limited to 'media/mtp') diff --git a/media/mtp/MtpDatabase.h b/media/mtp/MtpDatabase.h index 7feb3dc..a17797e 100644 --- a/media/mtp/MtpDatabase.h +++ b/media/mtp/MtpDatabase.h @@ -54,14 +54,10 @@ public: virtual MtpResponseCode getObjectInfo(MtpObjectHandle handle, MtpDataPacket& packet) = 0; - virtual bool getObjectFilePath(MtpObjectHandle handle, + virtual MtpResponseCode getObjectFilePath(MtpObjectHandle handle, MtpString& filePath, int64_t& fileLength) = 0; - virtual bool deleteFile(MtpObjectHandle handle) = 0; - - virtual void beginTransaction() = 0; - virtual void commitTransaction() = 0; - virtual void rollbackTransaction() = 0; + virtual MtpResponseCode deleteFile(MtpObjectHandle handle) = 0; }; }; // namespace android diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp index adfe3a9..1e41407 100644 --- a/media/mtp/MtpServer.cpp +++ b/media/mtp/MtpServer.cpp @@ -470,10 +470,11 @@ MtpResponseCode MtpServer::doGetObject() { MtpObjectHandle handle = mRequest.getParameter(1); MtpString pathBuf; int64_t fileLength; - if (!mDatabase->getObjectFilePath(handle, pathBuf, fileLength)) - return MTP_RESPONSE_INVALID_OBJECT_HANDLE; - const char* filePath = (const char *)pathBuf; + int result = mDatabase->getObjectFilePath(handle, pathBuf, fileLength); + if (result != MTP_RESPONSE_OK) + return result; + const char* filePath = (const char *)pathBuf; mtp_file_range mfr; mfr.fd = open(filePath, O_RDONLY); if (mfr.fd < 0) { @@ -513,8 +514,9 @@ MtpResponseCode MtpServer::doSendObjectInfo() { parent = 0; } else { int64_t dummy; - if (!mDatabase->getObjectFilePath(parent, path, dummy)) - return MTP_RESPONSE_INVALID_OBJECT_HANDLE; + int result = mDatabase->getObjectFilePath(parent, path, dummy); + if (result != MTP_RESPONSE_OK) + return result; } // read only the fields we need @@ -547,14 +549,11 @@ MtpResponseCode MtpServer::doSendObjectInfo() { path += "/"; path += (const char *)name; - mDatabase->beginTransaction(); MtpObjectHandle handle = mDatabase->beginSendObject((const char*)path, format, parent, storageID, mSendObjectFileSize, modifiedTime); if (handle == kInvalidObjectHandle) { - mDatabase->rollbackTransaction(); return MTP_RESPONSE_GENERAL_ERROR; } - mDatabase->commitTransaction(); if (format == MTP_FORMAT_ASSOCIATION) { mode_t mask = umask(0); @@ -641,17 +640,16 @@ MtpResponseCode MtpServer::doDeleteObject() { MtpString filePath; int64_t fileLength; - if (!mDatabase->getObjectFilePath(handle, filePath, fileLength)) - return MTP_RESPONSE_INVALID_OBJECT_HANDLE; - - LOGV("deleting %s", (const char *)filePath); - // one of these should work - rmdir((const char *)filePath); - unlink((const char *)filePath); - - mDatabase->deleteFile(handle); - - return MTP_RESPONSE_OK; + int result = mDatabase->getObjectFilePath(handle, filePath, fileLength); + if (result == MTP_RESPONSE_OK) { + LOGV("deleting %s", (const char *)filePath); + // one of these should work + rmdir((const char *)filePath); + unlink((const char *)filePath); + return mDatabase->deleteFile(handle); + } else { + return result; + } } MtpResponseCode MtpServer::doGetObjectPropDesc() { -- cgit v1.1