Index: ui/base/resource/data_pack.h |
diff --git a/ui/base/resource/data_pack.h b/ui/base/resource/data_pack.h |
index 46578186f23161a22b61e0924ad6a84d82d95c1b..a10a089e5cabb2f48f529305f9b436ecf56984b5 100644 |
--- a/ui/base/resource/data_pack.h |
+++ b/ui/base/resource/data_pack.h |
@@ -31,6 +31,14 @@ class RefCountedStaticMemory; |
namespace ui { |
enum ScaleFactor : int; |
+class DataSource { |
+ public: |
+ virtual ~DataSource(){}; |
+ |
+ virtual size_t length() const = 0; |
+ virtual const uint8_t* data() const = 0; |
sadrul
2016/05/17 15:07:50
These are virtual methods, I believe the style-gui
altimin
2016/05/17 15:40:08
Done.
|
+}; |
+ |
class UI_DATA_PACK_EXPORT DataPack : public ResourceHandle { |
public: |
explicit DataPack(ui::ScaleFactor scale_factor); |
@@ -50,6 +58,9 @@ class UI_DATA_PACK_EXPORT DataPack : public ResourceHandle { |
bool LoadFromFileRegion(base::File file, |
const base::MemoryMappedFile::Region& region); |
+ // Loads a pack file from |buffer|, returning false on error. |
+ bool LoadFromBuffer(base::StringPiece buffer); |
sadrul
2016/05/17 15:07:50
const &?
altimin
2016/05/17 15:40:07
It's recommended to pass base::StringPiece by valu
|
+ |
// Writes a pack file containing |resources| to |path|. If there are any |
// text resources to be written, their encoding must already agree to the |
// |textEncodingType| specified. If no text resources are present, please |
@@ -75,11 +86,11 @@ class UI_DATA_PACK_EXPORT DataPack : public ResourceHandle { |
#endif |
private: |
- // Does the actual loading of a pack file. Called by Load and LoadFromFile. |
+ // Does the actual loading of a pack file. |
+ // Called by Load and LoadFromFile and LoadFromBuffer. |
bool LoadImpl(); |
- // The memory-mapped data. |
- std::unique_ptr<base::MemoryMappedFile> mmap_; |
+ std::unique_ptr<DataSource> data_source_; |
// Number of resources in the data. |
size_t resource_count_; |