gfx/skia/trunk/include/utils/SkFrontBufferedStream.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  * Copyright 2013 Google Inc.
     3  *
     4  * Use of this source code is governed by a BSD-style license that can be
     5  * found in the LICENSE file.
     6  */
     8 #include "SkTypes.h"
    10 class SkStream;
    11 class SkStreamRewindable;
    13 /**
    14  *  Specialized stream that buffers the first X bytes of a stream,
    15  *  where X is passed in by the user. Note that unlike some buffered
    16  *  stream APIs, once more bytes than can fit in the buffer are read,
    17  *  no more buffering is done. This stream is designed for a use case
    18  *  where the caller knows that rewind will only be called from within
    19  *  X bytes (inclusive), and the wrapped stream is not necessarily
    20  *  able to rewind at all.
    21  */
    22 class SkFrontBufferedStream {
    23 public:
    24     /**
    25      *  Creates a new stream that wraps and buffers an SkStream.
    26      *  @param stream SkStream to buffer. If stream is NULL, NULL is
    27      *      returned. When this call succeeds (i.e. returns non NULL),
    28      *      SkFrontBufferedStream is expected to be the only owner of
    29      *      stream, so it should be unreffed and no longer used directly.
    30      *  @param minBufferSize Minimum size of buffer required.
    31      *  @return An SkStream that can buffer at least minBufferSize, or
    32      *      NULL on failure.
    33      */
    34     static SkStreamRewindable* Create(SkStream* stream, size_t minBufferSize);
    35 };

mercurial