summaryrefslogtreecommitdiff
path: root/core/fxcrt/cfx_seekablemultistream.h
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2017-11-14 16:05:53 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-14 16:05:53 +0000
commitccf206a7731e0df773a4c5941736953446ec4d9d (patch)
tree1d7335125899d0e614b2afa05cfcfad90f74a596 /core/fxcrt/cfx_seekablemultistream.h
parentf2d490650cef611f92e5d4a112c90647f08f054e (diff)
downloadpdfium-ccf206a7731e0df773a4c5941736953446ec4d9d.tar.xz
Move CXFA_FileRead out of XFA and rename
This code doesn't depend on XFA, but is only used by it. Moving it out, so it will be easier for me to write some tools for extracting data out of PDFs. Bug: Change-Id: Ic18613b46abed5124c47f539833b01b12c1c6e56 Reviewed-on: https://pdfium-review.googlesource.com/18410 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core/fxcrt/cfx_seekablemultistream.h')
-rw-r--r--core/fxcrt/cfx_seekablemultistream.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/fxcrt/cfx_seekablemultistream.h b/core/fxcrt/cfx_seekablemultistream.h
new file mode 100644
index 0000000000..9138d7c321
--- /dev/null
+++ b/core/fxcrt/cfx_seekablemultistream.h
@@ -0,0 +1,36 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_
+#define CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_
+
+#include <vector>
+
+#include "core/fxcrt/fx_stream.h"
+#include "core/fxcrt/retain_ptr.h"
+
+class CPDF_Stream;
+class CPDF_StreamAcc;
+
+class CFX_SeekableMultiStream : public IFX_SeekableStream {
+ public:
+ explicit CFX_SeekableMultiStream(const std::vector<CPDF_Stream*>& streams);
+ ~CFX_SeekableMultiStream() override;
+
+ // IFX_SeekableReadStream
+ FX_FILESIZE GetPosition() override;
+ FX_FILESIZE GetSize() override;
+ bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override;
+ size_t ReadBlock(void* buffer, size_t size) override;
+ bool IsEOF() override;
+ bool Flush() override;
+ bool WriteBlock(const void* pData, FX_FILESIZE offset, size_t size) override;
+
+ private:
+ std::vector<RetainPtr<CPDF_StreamAcc>> m_Data;
+};
+
+#endif // CORE_FXCRT_CFX_SEEKABLEMULTISTREAM_H_