aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-09-15 21:03:54 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-15 21:04:07 +0000
commit7031b247c9fe0cb8fa32129f9bc24fea2043cee2 (patch)
tree6ded4ad2071a03530ead08e4f5e1a41f4c42c563 /include
parentf95352322496796ce4c99df9582dbc630fe8a327 (diff)
Revert "use unique_ptr for stream api"
This reverts commit 49f1f34438d3431f6d7e32847accd2ba96948a73. Reason for revert: broke win-chrome ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): error C2228: left of '.release' must have class/struct/union ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): note: type is 'SkStreamAsset *' ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): note: did you intend to use '->' instead? Original change's description: > use unique_ptr for stream api > > Bug: skia:6888 > Change-Id: I3459b4913982a7cae1c0061697c82cc65ad9a2d8 > Reviewed-on: https://skia-review.googlesource.com/26740 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> TBR=mtklein@chromium.org,mtklein@google.com,bungeman@google.com,reed@google.com Change-Id: Ic1e4af557317abd06b7f6b7f5056645df7e469f0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6888 Reviewed-on: https://skia-review.googlesource.com/47440 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/core/SkStream.h121
-rw-r--r--include/utils/SkFrontBufferedStream.h14
2 files changed, 15 insertions, 120 deletions
diff --git a/include/core/SkStream.h b/include/core/SkStream.h
index 2d7a8c529d..5ef8519245 100644
--- a/include/core/SkStream.h
+++ b/include/core/SkStream.h
@@ -101,29 +101,10 @@ public:
*/
virtual bool rewind() { return false; }
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
/** Duplicates this stream. If this cannot be done, returns NULL.
* The returned stream will be positioned at the beginning of its data.
*/
virtual SkStreamRewindable* duplicate() const { return nullptr; }
- /** Duplicates this stream. If this cannot be done, returns NULL.
- * The returned stream will be positioned the same as this stream.
- */
- virtual SkStreamSeekable* fork() const { return nullptr; }
-#else
- /** Duplicates this stream. If this cannot be done, returns NULL.
- * The returned stream will be positioned at the beginning of its data.
- */
- std::unique_ptr<SkStream> duplicate() const {
- return std::unique_ptr<SkStream>(this->onDuplicate());
- }
- /** Duplicates this stream. If this cannot be done, returns NULL.
- * The returned stream will be positioned the same as this stream.
- */
- std::unique_ptr<SkStream> fork() const {
- return std::unique_ptr<SkStream>(this->onFork());
- }
-#endif
//SkStreamSeekable
/** Returns true if this stream can report it's current position. */
@@ -143,6 +124,11 @@ public:
*/
virtual bool move(long /*offset*/) { return false; }
+ /** Duplicates this stream. If this cannot be done, returns NULL.
+ * The returned stream will be positioned the same as this stream.
+ */
+ virtual SkStreamSeekable* fork() const { return nullptr; }
+
//SkStreamAsset
/** Returns true if this stream can report it's total length. */
virtual bool hasLength() const { return false; }
@@ -153,97 +139,44 @@ public:
/** Returns the starting address for the data. If this cannot be done, returns NULL. */
//TODO: replace with virtual const SkData* getData()
virtual const void* getMemoryBase() { return nullptr; }
-
-private:
-#ifndef SK_SUPPORT_LEGACY_STREAM_API
- virtual SkStream* onDuplicate() const { return nullptr; }
- virtual SkStream* onFork() const { return nullptr; }
-#endif
};
/** SkStreamRewindable is a SkStream for which rewind and duplicate are required. */
class SK_API SkStreamRewindable : public SkStream {
public:
bool rewind() override = 0;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamRewindable* duplicate() const override = 0;
-#else
- std::unique_ptr<SkStreamRewindable> duplicate() const {
- return std::unique_ptr<SkStreamRewindable>(this->onDuplicate());
- }
-private:
- SkStreamRewindable* onDuplicate() const override = 0;
-#endif
};
/** SkStreamSeekable is a SkStreamRewindable for which position, seek, move, and fork are required. */
class SK_API SkStreamSeekable : public SkStreamRewindable {
public:
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamSeekable* duplicate() const override = 0;
-#else
- std::unique_ptr<SkStreamSeekable> duplicate() const {
- return std::unique_ptr<SkStreamSeekable>(this->onDuplicate());
- }
-#endif
bool hasPosition() const override { return true; }
size_t getPosition() const override = 0;
bool seek(size_t position) override = 0;
bool move(long offset) override = 0;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamSeekable* fork() const override = 0;
-#else
- std::unique_ptr<SkStreamSeekable> fork() const {
- return std::unique_ptr<SkStreamSeekable>(this->onFork());
- }
-private:
- SkStreamSeekable* onDuplicate() const override = 0;
- SkStreamSeekable* onFork() const override = 0;
-#endif
};
/** SkStreamAsset is a SkStreamSeekable for which getLength is required. */
class SK_API SkStreamAsset : public SkStreamSeekable {
public:
- bool hasLength() const override { return true; }
- size_t getLength() const override = 0;
-
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamAsset* duplicate() const override = 0;
SkStreamAsset* fork() const override = 0;
-#else
- std::unique_ptr<SkStreamAsset> duplicate() const {
- return std::unique_ptr<SkStreamAsset>(this->onDuplicate());
- }
- std::unique_ptr<SkStreamAsset> fork() const {
- return std::unique_ptr<SkStreamAsset>(this->onFork());
- }
-private:
- SkStreamAsset* onDuplicate() const override = 0;
- SkStreamAsset* onFork() const override = 0;
-#endif
+
+ bool hasLength() const override { return true; }
+ size_t getLength() const override = 0;
};
/** SkStreamMemory is a SkStreamAsset for which getMemoryBase is required. */
class SK_API SkStreamMemory : public SkStreamAsset {
public:
- const void* getMemoryBase() override = 0;
-
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamMemory* duplicate() const override = 0;
SkStreamMemory* fork() const override = 0;
-#else
- std::unique_ptr<SkStreamMemory> duplicate() const {
- return std::unique_ptr<SkStreamMemory>(this->onDuplicate());
- }
- std::unique_ptr<SkStreamMemory> fork() const {
- return std::unique_ptr<SkStreamMemory>(this->onFork());
- }
-private:
- SkStreamMemory* onDuplicate() const override = 0;
- SkStreamMemory* onFork() const override = 0;
-#endif
+
+ const void* getMemoryBase() override = 0;
};
class SK_API SkWStream : SkNoncopyable {
@@ -345,24 +278,12 @@ public:
bool isAtEnd() const override;
bool rewind() override;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamAsset* duplicate() const override;
-#else
- std::unique_ptr<SkStreamAsset> duplicate() const {
- return std::unique_ptr<SkStreamAsset>(this->onDuplicate());
- }
-#endif
size_t getPosition() const override;
bool seek(size_t position) override;
bool move(long offset) override;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamAsset* fork() const override;
-#else
- std::unique_ptr<SkStreamAsset> fork() const {
- return std::unique_ptr<SkStreamAsset>(this->onFork());
- }
-#endif
size_t getLength() const override;
@@ -370,11 +291,6 @@ private:
explicit SkFILEStream(std::shared_ptr<FILE>, size_t size, size_t offset);
explicit SkFILEStream(std::shared_ptr<FILE>, size_t size, size_t offset, size_t originalOffset);
-#ifndef SK_SUPPORT_LEGACY_STREAM_API
- SkStreamAsset* onDuplicate() const override;
- SkStreamAsset* onFork() const override;
-#endif
-
std::shared_ptr<FILE> fFILE;
// My own council will I keep on sizes and offsets.
size_t fSize;
@@ -430,35 +346,18 @@ public:
size_t peek(void* buffer, size_t size) const override;
bool rewind() override;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkMemoryStream* duplicate() const override;
-#else
- std::unique_ptr<SkMemoryStream> duplicate() const {
- return std::unique_ptr<SkMemoryStream>(this->onDuplicate());
- }
-#endif
size_t getPosition() const override;
bool seek(size_t position) override;
bool move(long offset) override;
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkMemoryStream* fork() const override;
-#else
- std::unique_ptr<SkMemoryStream> fork() const {
- return std::unique_ptr<SkMemoryStream>(this->onFork());
- }
-#endif
size_t getLength() const override;
const void* getMemoryBase() override;
private:
-#ifndef SK_SUPPORT_LEGACY_STREAM_API
- SkMemoryStream* onDuplicate() const override;
- SkMemoryStream* onFork() const override;
-#endif
-
sk_sp<SkData> fData;
size_t fOffset;
diff --git a/include/utils/SkFrontBufferedStream.h b/include/utils/SkFrontBufferedStream.h
index a47acf8a06..3532fc5259 100644
--- a/include/utils/SkFrontBufferedStream.h
+++ b/include/utils/SkFrontBufferedStream.h
@@ -8,7 +8,10 @@
#ifndef SkFrontBufferedStream_DEFINED
#define SkFrontBufferedStream_DEFINED
-#include "SkStream.h"
+#include "SkTypes.h"
+
+class SkStream;
+class SkStreamRewindable;
/**
* Specialized stream that buffers the first X bytes of a stream,
@@ -33,13 +36,6 @@ public:
* NULL on failure. The caller is required to delete when finished with
* this object.
*/
- static std::unique_ptr<SkStreamRewindable> Make(std::unique_ptr<SkStream> stream,
- size_t minBufferSize);
-
-#ifdef SK_SUPPORT_LEGACY_STREAM_API
- static SkStreamRewindable* Create(SkStream* stream, size_t minBufferSize) {
- return Make(std::unique_ptr<SkStream>(stream), minBufferSize).release();
- }
-#endif
+ static SkStreamRewindable* Create(SkStream* stream, size_t minBufferSize);
};
#endif // SkFrontBufferedStream_DEFINED