diff options
| author | Mike Lockwood <lockwood@android.com> | 2010-07-02 14:03:31 -0400 |
|---|---|---|
| committer | Mike Lockwood <lockwood@android.com> | 2010-07-02 14:14:06 -0400 |
| commit | 8dd2a39bae441143ebbb65237db63f65fdc1c645 (patch) | |
| tree | 0e7af018d03c5b721eeef93e19f67bc32f5683b4 /media/mtp/MtpSqliteDatabase.h | |
| parent | 39cae6e02b0267b6a578b0ba346b96af482a1434 (diff) | |
| download | frameworks_base-8dd2a39bae441143ebbb65237db63f65fdc1c645.zip frameworks_base-8dd2a39bae441143ebbb65237db63f65fdc1c645.tar.gz frameworks_base-8dd2a39bae441143ebbb65237db63f65fdc1c645.tar.bz2 | |
MTP: Make MtpDatabase class abstract so we can have multiple implementations
Rename existing test database to MtpSqliteDatabase
This is the first step in transitioning to using the media provider database
Change-Id: I5f36c854c6e76a79137c267b000a52ced803776c
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/mtp/MtpSqliteDatabase.h')
| -rw-r--r-- | media/mtp/MtpSqliteDatabase.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/media/mtp/MtpSqliteDatabase.h b/media/mtp/MtpSqliteDatabase.h new file mode 100644 index 0000000..74626a8 --- /dev/null +++ b/media/mtp/MtpSqliteDatabase.h @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _MTP_SQLITE_DATABASE_H +#define _MTP_SQLITE_DATABASE_H + +#include "MtpTypes.h" +#include "MtpDatabase.h" + +class SqliteDatabase; + +namespace android { + +class MtpDataPacket; +class SqliteStatement; + +class MtpSqliteDatabase : public MtpDatabase { +private: + SqliteDatabase* mDatabase; + SqliteStatement* mFileIdQuery; + SqliteStatement* mFilePathQuery; + SqliteStatement* mObjectInfoQuery; + SqliteStatement* mFileInserter; + SqliteStatement* mFileDeleter; + SqliteStatement* mAudioInserter; + SqliteStatement* mAudioDeleter; + +public: + MtpSqliteDatabase(); + virtual ~MtpSqliteDatabase(); + + bool open(const char* path, bool create); + void close(); + + virtual MtpObjectHandle getObjectHandle(const char* path); + virtual MtpObjectHandle addFile(const char* path, + MtpObjectFormat format, + MtpObjectHandle parent, + MtpStorageID storage, + uint64_t size, + time_t modified); + + virtual MtpObjectHandle addAudioFile(MtpObjectHandle id); + + virtual MtpObjectHandle addAudioFile(MtpObjectHandle id, + const char* title, + const char* artist, + const char* album, + const char* albumArtist, + const char* genre, + const char* composer, + const char* mimeType, + int track, + int year, + int duration); + + virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID, + MtpObjectFormat format, + MtpObjectHandle parent); + + virtual MtpResponseCode getObjectProperty(MtpObjectHandle handle, + MtpObjectProperty property, + MtpDataPacket& packet); + + virtual MtpResponseCode getObjectInfo(MtpObjectHandle handle, + MtpDataPacket& packet); + + virtual bool getObjectFilePath(MtpObjectHandle handle, + MtpString& filePath, + int64_t& fileLength); + virtual bool deleteFile(MtpObjectHandle handle); + + // helper for media scanner + virtual MtpObjectHandle* getFileList(int& outCount); + + virtual void beginTransaction(); + virtual void commitTransaction(); + virtual void rollbackTransaction(); +}; + +}; // namespace android + +#endif // _MTP_SQLITE_DATABASE_H |
