Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Side by Side Diff: include/core/SkData.h

Issue 14336003: Move MMap to SkData. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Work on Linux. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 10
11 #ifndef SkData_DEFINED 11 #ifndef SkData_DEFINED
12 #define SkData_DEFINED 12 #define SkData_DEFINED
13 13
14 #include "SkFlattenable.h" 14 #include "SkFlattenable.h"
15 15
16 struct SkFILE;
17
16 /** 18 /**
17 * SkData holds an immutable data buffer. Not only is the data immutable, 19 * SkData holds an immutable data buffer. Not only is the data immutable,
18 * but the actual ptr that is returned (by data() or bytes()) is guaranteed 20 * but the actual ptr that is returned (by data() or bytes()) is guaranteed
19 * to always be the same for the life of this instance. 21 * to always be the same for the life of this instance.
20 */ 22 */
21 class SK_API SkData : public SkFlattenable { 23 class SK_API SkData : public SkFlattenable {
22 public: 24 public:
23 SK_DECLARE_INST_COUNT(SkData) 25 SK_DECLARE_INST_COUNT(SkData)
24 26
25 /** 27 /**
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 static SkData* NewWithProc(const void* data, size_t length, 84 static SkData* NewWithProc(const void* data, size_t length,
83 ReleaseProc proc, void* context); 85 ReleaseProc proc, void* context);
84 86
85 /** 87 /**
86 * Create a new dataref from a pointer allocated by malloc. The Data object 88 * Create a new dataref from a pointer allocated by malloc. The Data object
87 * takes ownership of that allocation, and will handling calling sk_free. 89 * takes ownership of that allocation, and will handling calling sk_free.
88 */ 90 */
89 static SkData* NewFromMalloc(const void* data, size_t length); 91 static SkData* NewFromMalloc(const void* data, size_t length);
90 92
91 /** 93 /**
92 * Create a new dataref from a pointer allocated by mmap. The Data object 94 * Create a new dataref from a SkFILE.
93 * will handle calling munmap(). 95 * This does not take ownership of the SkFILE, nor close it.
96 * The SkFILE must be open for reading only.
97 * Returns NULL on failure.
94 */ 98 */
95 static SkData* NewFromMMap(const void* data, size_t length); 99 static SkData* NewFromFILE(SkFILE* f);
96 100
97 /** 101 /**
98 * Create a new dataref using a subset of the data in the specified 102 * Create a new dataref using a subset of the data in the specified
99 * src dataref. 103 * src dataref.
100 */ 104 */
101 static SkData* NewSubset(const SkData* src, size_t offset, size_t length); 105 static SkData* NewSubset(const SkData* src, size_t offset, size_t length);
102 106
103 /** 107 /**
104 * Returns a new empty dataref (or a reference to a shared empty dataref). 108 * Returns a new empty dataref (or a reference to a shared empty dataref).
105 * New or shared, the caller must see that unref() is eventually called. 109 * New or shared, the caller must see that unref() is eventually called.
(...skipping 16 matching lines...) Expand all
122 SkData(const void* ptr, size_t size, ReleaseProc, void* context); 126 SkData(const void* ptr, size_t size, ReleaseProc, void* context);
123 virtual ~SkData(); 127 virtual ~SkData();
124 128
125 typedef SkFlattenable INHERITED; 129 typedef SkFlattenable INHERITED;
126 }; 130 };
127 131
128 /** Typedef of SkAutoTUnref<SkData> for automatically unref-ing a SkData. */ 132 /** Typedef of SkAutoTUnref<SkData> for automatically unref-ing a SkData. */
129 typedef SkAutoTUnref<SkData> SkAutoDataUnref; 133 typedef SkAutoTUnref<SkData> SkAutoDataUnref;
130 134
131 #endif 135 #endif
OLDNEW
« no previous file with comments | « gm/factory.cpp ('k') | src/core/SkData.cpp » ('j') | src/core/SkStream.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698