116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood/* 216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Copyright (C) 2010 The Android Open Source Project 316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * you may not use this file except in compliance with the License. 616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * You may obtain a copy of the License at 716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 1016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Unless required by applicable law or agreed to in writing, software 1116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * See the License for the specific language governing permissions and 1416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * limitations under the License. 1516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood */ 1616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 1716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#ifndef _MTP_STORAGE_H 1816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define _MTP_STORAGE_H 1916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 20a849440ca96e93f700d62c6e41d48905b4d405b6Mike Lockwood#include "MtpTypes.h" 2116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#include "mtp.h" 2216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 237850ef999740f214a1990a9c090d3f3865d435aaMike Lockwoodnamespace android { 247850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood 2516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodclass MtpDatabase; 2616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 2716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodclass MtpStorage { 2816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 2916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodprivate: 3016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood MtpStorageID mStorageID; 31a849440ca96e93f700d62c6e41d48905b4d405b6Mike Lockwood MtpString mFilePath; 320241cacb85dbac20b28036bbb8025dfd513e3753Mike Lockwood MtpString mDescription; 3316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood uint64_t mMaxCapacity; 349b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958Mike Lockwood uint64_t mMaxFileSize; 3520c3be0e0394e1340c036685eb1edb8f6ef5a2acMike Lockwood // amount of free space to leave unallocated 3620c3be0e0394e1340c036685eb1edb8f6ef5a2acMike Lockwood uint64_t mReserveSpace; 377efab4282a7179b2f53a3dbccee3e70d7fce6a7fMike Lockwood bool mRemovable; 3816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 3916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodpublic: 4020c3be0e0394e1340c036685eb1edb8f6ef5a2acMike Lockwood MtpStorage(MtpStorageID id, const char* filePath, 417efab4282a7179b2f53a3dbccee3e70d7fce6a7fMike Lockwood const char* description, uint64_t reserveSpace, 429b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958Mike Lockwood bool removable, uint64_t maxFileSize); 4316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood virtual ~MtpStorage(); 4416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 4516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood inline MtpStorageID getStorageID() const { return mStorageID; } 4616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood int getType() const; 4716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood int getFileSystemType() const; 4816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood int getAccessCapability() const; 4916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood uint64_t getMaxCapacity(); 5016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood uint64_t getFreeSpace(); 5116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood const char* getDescription() const; 52a849440ca96e93f700d62c6e41d48905b4d405b6Mike Lockwood inline const char* getPath() const { return (const char *)mFilePath; } 537efab4282a7179b2f53a3dbccee3e70d7fce6a7fMike Lockwood inline bool isRemovable() const { return mRemovable; } 549b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958Mike Lockwood inline uint64_t getMaxFileSize() const { return mMaxFileSize; } 5516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood}; 5616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 577850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood}; // namespace android 587850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood 5916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#endif // _MTP_STORAGE_H 60