| Index: third_party/WebKit/Source/platform/image-decoders/SegmentReader.h
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/SegmentReader.h b/third_party/WebKit/Source/platform/image-decoders/SegmentReader.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..35bcfe404da8eda60790446b4e31280eb4365cad
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/SegmentReader.h
|
| @@ -0,0 +1,43 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef SegmentReader_h
|
| +#define SegmentReader_h
|
| +
|
| +#include "platform/SharedBuffer.h"
|
| +#include "third_party/skia/include/core/SkData.h"
|
| +#include "third_party/skia/include/core/SkRWBuffer.h"
|
| +#include "wtf/Noncopyable.h"
|
| +#include "wtf/PassRefPtr.h"
|
| +#include "wtf/RefCounted.h"
|
| +
|
| +namespace blink {
|
| +
|
| +// Interface that looks like SharedBuffer. Used by ImageDecoders to use various
|
| +// sources of input including:
|
| +// - SharedBuffer
|
| +// - for when the caller already has a SharedBuffer
|
| +// - SkData
|
| +// - for when the caller already has an SkData
|
| +// - SkROBuffer
|
| +// - for when the caller wants to read/write in different threads
|
| +//
|
| +// Unlike SharedBuffer, this is a read-only interface. There is no way to
|
| +// modify the underlying data source.
|
| +class PLATFORM_EXPORT SegmentReader : public RefCounted<SegmentReader> {
|
| + WTF_MAKE_NONCOPYABLE(SegmentReader);
|
| +public:
|
| + static PassRefPtr<SegmentReader> createFromSharedBuffer(PassRefPtr<SharedBuffer>);
|
| + static PassRefPtr<SegmentReader> createFromSkData(PassRefPtr<SkData>);
|
| + static PassRefPtr<SegmentReader> createFromSkROBuffer(PassRefPtr<SkROBuffer>);
|
| +
|
| + SegmentReader() {}
|
| + virtual ~SegmentReader() {}
|
| + virtual size_t size() const = 0;
|
| + virtual size_t getSomeData(const char*& data, size_t position) const = 0;
|
| + virtual PassRefPtr<SkData> getAsSkData() const = 0;
|
| +};
|
| +
|
| +} // namespace blink
|
| +#endif // SegmentReader_h
|
|
|