MtpDatabase.h revision d815f79766984fce499e147ecbacc01914683f74
156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood/* 256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Copyright (C) 2010 The Android Open Source Project 356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * you may not use this file except in compliance with the License. 656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * You may obtain a copy of the License at 756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 1056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Unless required by applicable law or agreed to in writing, software 1156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * See the License for the specific language governing permissions and 1456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * limitations under the License. 1556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood */ 1656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 1756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#ifndef _MTP_DATABASE_H 1856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#define _MTP_DATABASE_H 1956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 205bae7f615b6375820f61b28f6792cb2d01aab54bMike Lockwood#include "MtpTypes.h" 2156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 228d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwoodnamespace android { 238d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 2456118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodclass MtpDataPacket; 2556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 268dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwoodclass MtpDatabase { 2756118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodpublic: 282d6c9e9c4e5f261b252962bf8ce04c50000a8e2cMike Lockwood virtual ~MtpDatabase() {} 298dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood 30d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // called from SendObjectInfo to reserve a database entry for the incoming file 31d815f79766984fce499e147ecbacc01914683f74Mike Lockwood virtual MtpObjectHandle beginSendObject(const char* path, 328dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectFormat format, 338dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectHandle parent, 348dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpStorageID storage, 358dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood uint64_t size, 368dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood time_t modified) = 0; 378dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood 38d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // called to report success or failure of the SendObject file transfer 39d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // success should signal a notification of the new object's creation, 40d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // failure should remove the database entry created in beginSendObject 41d815f79766984fce499e147ecbacc01914683f74Mike Lockwood virtual void endSendObject(const char* path, 42d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectHandle handle, 43d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectFormat format, 44d815f79766984fce499e147ecbacc01914683f74Mike Lockwood bool succeeded) = 0; 45d815f79766984fce499e147ecbacc01914683f74Mike Lockwood 468dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID, 47d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectFormat format, 48d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectHandle parent) = 0; 4956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 508dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual MtpResponseCode getObjectProperty(MtpObjectHandle handle, 518dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectProperty property, 528dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpDataPacket& packet) = 0; 5356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 548dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual MtpResponseCode getObjectInfo(MtpObjectHandle handle, 558dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpDataPacket& packet) = 0; 5656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 578dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual bool getObjectFilePath(MtpObjectHandle handle, 588dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpString& filePath, 598dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood int64_t& fileLength) = 0; 608dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual bool deleteFile(MtpObjectHandle handle) = 0; 61d0782678df0b23b06c8687372b58994ed252a61aMike Lockwood 628dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual void beginTransaction() = 0; 638dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual void commitTransaction() = 0; 648dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual void rollbackTransaction() = 0; 6556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood}; 6656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 678d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood}; // namespace android 688d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 6956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#endif // _MTP_DATABASE_H 70