aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/gm_expectations.h
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-08 16:23:56 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-08 16:23:56 +0000
commitde3ad9e2209e4c0a682246cf732c8bf3bc0f0286 (patch)
treecae4a777a6d78bfbbc8585aa67ddeb32b8b2b294 /gm/gm_expectations.h
parent0ecbfffa82593024a7de354c94068e543c560c54 (diff)
Revert of extract some common code from PictureRenderer (https://codereview.chromium.org/273703006/)
Reason for revert: breaking the android debug builds. It seems to be the result of android using shared libs and not lumping everything into one big static lib or executable. So we have more than one copy of SkString which is the root of the issue. Original issue's description: > extract some common code from PictureRenderer > > Committed: http://code.google.com/p/skia/source/detail?r=14638 R=borenet@google.com, epoger@google.com TBR=borenet@google.com, epoger@google.com NOTREECHECKS=true NOTRY=true Author: djsollen@google.com Review URL: https://codereview.chromium.org/274463004 git-svn-id: http://skia.googlecode.com/svn/trunk@14649 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/gm_expectations.h')
-rw-r--r--gm/gm_expectations.h43
1 files changed, 41 insertions, 2 deletions
diff --git a/gm/gm_expectations.h b/gm/gm_expectations.h
index 7092127338..d454732dad 100644
--- a/gm/gm_expectations.h
+++ b/gm/gm_expectations.h
@@ -3,8 +3,6 @@
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
- *
- * TODO(epoger): Combine this with tools/image_expectations.h, or eliminate one of the two.
*/
#ifndef gm_expectations_DEFINED
#define gm_expectations_DEFINED
@@ -218,6 +216,47 @@ namespace skiagm {
private:
/**
+ * Read as many bytes as possible (up to maxBytes) from the stream into
+ * an SkData object.
+ *
+ * If the returned SkData contains fewer than maxBytes, then EOF has been
+ * reached and no more data would be available from subsequent calls.
+ * (If EOF has already been reached, then this call will return an empty
+ * SkData object immediately.)
+ *
+ * If there are fewer than maxBytes bytes available to read from the
+ * stream, but the stream has not been closed yet, this call will block
+ * until there are enough bytes to read or the stream has been closed.
+ *
+ * It is up to the caller to call unref() on the returned SkData object
+ * once the data is no longer needed, so that the underlying buffer will
+ * be freed. For example:
+ *
+ * {
+ * size_t maxBytes = 256;
+ * SkAutoDataUnref dataRef(readIntoSkData(stream, maxBytes));
+ * if (NULL != dataRef.get()) {
+ * size_t bytesActuallyRead = dataRef.get()->size();
+ * // use the data...
+ * }
+ * }
+ * // underlying buffer has been freed, thanks to auto unref
+ *
+ */
+ // TODO(epoger): Move this, into SkStream.[cpp|h] as attempted in
+ // https://codereview.appspot.com/7300071 ?
+ // And maybe ReadFileIntoSkData() also?
+ static SkData* ReadIntoSkData(SkStream &stream, size_t maxBytes);
+
+ /**
+ * Wrapper around ReadIntoSkData for files: reads the entire file into
+ * an SkData object.
+ */
+ static SkData* ReadFileIntoSkData(SkFILEStream &stream) {
+ return ReadIntoSkData(stream, stream.getLength());
+ }
+
+ /**
* Read the file contents from jsonPath and parse them into jsonRoot.
*
* Returns true if successful.