Chromium Code Reviews| Index: pdf/chunk_stream.h |
| =================================================================== |
| --- pdf/chunk_stream.h (revision 0) |
| +++ pdf/chunk_stream.h (revision 0) |
| @@ -0,0 +1,47 @@ |
| +// Copyright (c) 2010 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 PDF_CHUNK_STREAM_H_ |
| +#define PDF_CHUNK_STREAM_H_ |
| + |
| +#include <map> |
| +#include <stddef.h> |
|
Lei Zhang
2014/05/20 00:13:10
nit: C #includes before C++
jam
2014/05/20 00:20:32
Done.
|
| +#include <vector> |
| + |
| +namespace chrome_pdf { |
| + |
| +// This class collects a chunks of data into one data stream. Client can check |
| +// if data in certain range is available, and get missing chunks of data. |
| +class ChunkStream { |
| + public: |
| + ChunkStream(); |
| + ~ChunkStream(); |
| + |
| + void Clear(); |
| + |
| + void Preallocate(size_t stream_size); |
| + size_t GetSize(); |
| + |
| + bool WriteData(size_t offset, void* buffer, size_t size); |
| + bool ReadData(size_t offset, size_t size, void* buffer) const; |
| + |
| + // Returns vector of pairs where first is an offset, second is a size. |
| + bool GetMissedRanges(size_t offset, size_t size, |
| + std::vector<std::pair<size_t, size_t> >* ranges) const; |
| + bool IsRangeAvailable(size_t offset, size_t size) const; |
| + size_t GetFirstMissingByte() const; |
| + |
| + size_t GetLastByteBefore(size_t offset) const; |
| + size_t GetFirstByteAfter(size_t offset) const; |
| + |
| + private: |
| + std::vector<unsigned char> data_; |
| + |
| + // Pair, first - begining of the chunk, second - size of the chunk. |
| + std::map<size_t, size_t> chunks_; |
| +}; |
| + |
| +}; // namespace chrome_pdf |
| + |
| +#endif |
| Property changes on: pdf\chunk_stream.h |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |