diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/utils/BackupHelpers.h | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/include/utils/BackupHelpers.h b/include/utils/BackupHelpers.h index f60f4ea..3ca8ad2 100644 --- a/include/utils/BackupHelpers.h +++ b/include/utils/BackupHelpers.h @@ -23,30 +23,15 @@ namespace android { enum { - BACKUP_HEADER_APP_V1 = 0x31707041, // App1 (little endian) BACKUP_HEADER_ENTITY_V1 = 0x61746144, // Data (little endian) - BACKUP_FOOTER_APP_V1 = 0x746f6f46, // Foot (little endian) }; -// the sizes of all of these match. -typedef struct { - int type; // == BACKUP_HEADER_APP_V1 - int packageLen; // length of the name of the package that follows, not including the null. - int cookie; -} app_header_v1; - typedef struct { int type; // BACKUP_HEADER_ENTITY_V1 int keyLen; // length of the key name, not including the null terminator int dataSize; // size of the data, not including the padding, -1 means delete } entity_header_v1; -typedef struct { - int type; // BACKUP_FOOTER_APP_V1 - int entityCount; // the number of entities that were written - int cookie; -} app_footer_v1; - /** * Writes the data. @@ -61,13 +46,9 @@ public: // does not close fd ~BackupDataWriter(); - status_t WriteAppHeader(const String8& packageName, int cookie); - status_t WriteEntityHeader(const String8& key, size_t dataSize); status_t WriteEntityData(const void* data, size_t size); - status_t WriteAppFooter(int cookie); - private: explicit BackupDataWriter(); status_t write_padding_for(int n); @@ -92,28 +73,26 @@ public: ~BackupDataReader(); status_t Status(); - status_t ReadNextHeader(int* type = NULL); + status_t ReadNextHeader(bool* done, int* type); - status_t ReadAppHeader(String8* packageName, int* cookie); bool HasEntities(); status_t ReadEntityHeader(String8* key, size_t* dataSize); status_t SkipEntityData(); // must be called with the pointer at the begining of the data. status_t ReadEntityData(void* data, size_t size); - status_t ReadAppFooter(int* cookie); private: explicit BackupDataReader(); status_t skip_padding(); int m_fd; + bool m_done; status_t m_status; ssize_t m_pos; + ssize_t m_dataEndPos; int m_entityCount; union { int type; - app_header_v1 app; entity_header_v1 entity; - app_footer_v1 footer; } m_header; }; |