| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/image-decoders/SegmentReader.h" | 5 #include "platform/image-decoders/SegmentReader.h" |
| 6 | 6 |
| 7 #include "platform/SharedBuffer.h" | 7 #include "platform/SharedBuffer.h" |
| 8 #include "platform/SharedBufferStep.h" |
| 8 #include "platform/wtf/Assertions.h" | 9 #include "platform/wtf/Assertions.h" |
| 9 #include "platform/wtf/Noncopyable.h" | 10 #include "platform/wtf/Noncopyable.h" |
| 10 #include "platform/wtf/PassRefPtr.h" | 11 #include "platform/wtf/PassRefPtr.h" |
| 11 #include "platform/wtf/RefPtr.h" | 12 #include "platform/wtf/RefPtr.h" |
| 12 #include "platform/wtf/ThreadingPrimitives.h" | 13 #include "platform/wtf/ThreadingPrimitives.h" |
| 13 #include "third_party/skia/include/core/SkData.h" | 14 #include "third_party/skia/include/core/SkData.h" |
| 14 | 15 |
| 15 namespace blink { | 16 namespace blink { |
| 16 | 17 |
| 17 // SharedBufferSegmentReader --------------------------------------------------- | 18 // SharedBufferSegmentReader --------------------------------------------------- |
| (...skipping 22 matching lines...) Expand all Loading... |
| 40 | 41 |
| 41 size_t SharedBufferSegmentReader::GetSomeData(const char*& data, | 42 size_t SharedBufferSegmentReader::GetSomeData(const char*& data, |
| 42 size_t position) const { | 43 size_t position) const { |
| 43 return shared_buffer_->GetSomeData(data, position); | 44 return shared_buffer_->GetSomeData(data, position); |
| 44 } | 45 } |
| 45 | 46 |
| 46 sk_sp<SkData> SharedBufferSegmentReader::GetAsSkData() const { | 47 sk_sp<SkData> SharedBufferSegmentReader::GetAsSkData() const { |
| 47 return shared_buffer_->GetAsSkData(); | 48 return shared_buffer_->GetAsSkData(); |
| 48 } | 49 } |
| 49 | 50 |
| 51 // SharedBufferStepSegmentReader |
| 52 // --------------------------------------------------- |
| 53 |
| 54 // Interface for ImageDecoder to read a SharedBufferStep. |
| 55 class SharedBufferStepSegmentReader final : public SegmentReader { |
| 56 WTF_MAKE_NONCOPYABLE(SharedBufferStepSegmentReader); |
| 57 |
| 58 public: |
| 59 SharedBufferStepSegmentReader(PassRefPtr<SharedBufferStep>); |
| 60 size_t size() const override; |
| 61 size_t GetSomeData(const char*& data, size_t position) const override; |
| 62 sk_sp<SkData> GetAsSkData() const override; |
| 63 |
| 64 private: |
| 65 RefPtr<SharedBufferStep> step_; |
| 66 size_t size_; |
| 67 }; |
| 68 |
| 69 SharedBufferStepSegmentReader::SharedBufferStepSegmentReader( |
| 70 PassRefPtr<SharedBufferStep> step) |
| 71 : step_(std::move(step)), size_(step_->size()) {} |
| 72 |
| 73 size_t SharedBufferStepSegmentReader::size() const { |
| 74 return size_; |
| 75 } |
| 76 |
| 77 size_t SharedBufferStepSegmentReader::GetSomeData(const char*& data, |
| 78 size_t position) const { |
| 79 return step_->GetSomeData(data, position); |
| 80 } |
| 81 |
| 82 sk_sp<SkData> SharedBufferStepSegmentReader::GetAsSkData() const { |
| 83 return step_->GetAsSkData(); |
| 84 } |
| 85 |
| 50 // DataSegmentReader ----------------------------------------------------------- | 86 // DataSegmentReader ----------------------------------------------------------- |
| 51 | 87 |
| 52 // Interface for ImageDecoder to read an SkData. | 88 // Interface for ImageDecoder to read an SkData. |
| 53 class DataSegmentReader final : public SegmentReader { | 89 class DataSegmentReader final : public SegmentReader { |
| 54 WTF_MAKE_NONCOPYABLE(DataSegmentReader); | 90 WTF_MAKE_NONCOPYABLE(DataSegmentReader); |
| 55 | 91 |
| 56 public: | 92 public: |
| 57 DataSegmentReader(sk_sp<SkData>); | 93 DataSegmentReader(sk_sp<SkData>); |
| 58 size_t size() const override; | 94 size_t size() const override; |
| 59 size_t GetSomeData(const char*& data, size_t position) const override; | 95 size_t GetSomeData(const char*& data, size_t position) const override; |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 | 219 |
| 184 PassRefPtr<SegmentReader> SegmentReader::CreateFromSharedBuffer( | 220 PassRefPtr<SegmentReader> SegmentReader::CreateFromSharedBuffer( |
| 185 PassRefPtr<SharedBuffer> buffer) { | 221 PassRefPtr<SharedBuffer> buffer) { |
| 186 return AdoptRef(new SharedBufferSegmentReader(std::move(buffer))); | 222 return AdoptRef(new SharedBufferSegmentReader(std::move(buffer))); |
| 187 } | 223 } |
| 188 | 224 |
| 189 PassRefPtr<SegmentReader> SegmentReader::CreateFromSkData(sk_sp<SkData> data) { | 225 PassRefPtr<SegmentReader> SegmentReader::CreateFromSkData(sk_sp<SkData> data) { |
| 190 return AdoptRef(new DataSegmentReader(std::move(data))); | 226 return AdoptRef(new DataSegmentReader(std::move(data))); |
| 191 } | 227 } |
| 192 | 228 |
| 229 PassRefPtr<SegmentReader> SegmentReader::CreateFromSharedBufferStep( |
| 230 PassRefPtr<SharedBufferStep> step) { |
| 231 return AdoptRef(new SharedBufferStepSegmentReader(std::move(step))); |
| 232 } |
| 233 |
| 193 PassRefPtr<SegmentReader> SegmentReader::CreateFromSkROBuffer( | 234 PassRefPtr<SegmentReader> SegmentReader::CreateFromSkROBuffer( |
| 194 sk_sp<SkROBuffer> buffer) { | 235 sk_sp<SkROBuffer> buffer) { |
| 195 return AdoptRef(new ROBufferSegmentReader(std::move(buffer))); | 236 return AdoptRef(new ROBufferSegmentReader(std::move(buffer))); |
| 196 } | 237 } |
| 197 | 238 |
| 198 } // namespace blink | 239 } // namespace blink |
| OLD | NEW |