diff options
Diffstat (limited to 'base/data_pack.h')
-rw-r--r-- | base/data_pack.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/base/data_pack.h b/base/data_pack.h new file mode 100644 index 0000000..1836552 --- /dev/null +++ b/base/data_pack.h @@ -0,0 +1,46 @@ +// Copyright (c) 2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// DataPack represents a read-only view onto an on-disk file that contains +// (key, value) pairs of data. It's used to store static resources like +// translation strings and images. + +#ifndef BASE_DATA_PACK_H_ +#define BASE_DATA_PACK_H_ + +#include "base/basictypes.h" +#include "base/scoped_ptr.h" + +namespace file_util { + class MemoryMappedFile; +} +class FilePath; +class StringPiece; + +namespace base { + +class DataPack { + public: + DataPack(); + ~DataPack(); + + // Load a pack file from |path|, returning false on error. + bool Load(const FilePath& path); + + // Get resource by id |resource_id|, filling in |data|. + // The data is owned by the DataPack object and should not be modified. + // Returns false if the resource id isn't found. + bool Get(uint32_t resource_id, StringPiece* data); + + private: + // The memory-mapped data. + scoped_ptr<file_util::MemoryMappedFile> mmap_; + + // Number of resources in the data. + size_t resource_count_; +}; + +} // namespace base + +#endif // BASE_DATA_PACK_H_ |