Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(729)

Side by Side Diff: fpdfsdk/fpdfview.cpp

Issue 2545653003: Make more concrete stream classes private to .cpp files (Closed)
Patch Set: {} Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/fpdfeditimg.cpp ('k') | fpdfsdk/fsdk_define.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium 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 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "public/fpdfview.h" 7 #include "public/fpdfview.h"
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 pContext->m_pRenderer = pdfium::MakeUnique<CPDF_ProgressiveRenderer>( 112 pContext->m_pRenderer = pdfium::MakeUnique<CPDF_ProgressiveRenderer>(
113 pContext->m_pContext.get(), pContext->m_pDevice.get(), 113 pContext->m_pContext.get(), pContext->m_pDevice.get(),
114 pContext->m_pOptions.get()); 114 pContext->m_pOptions.get());
115 pContext->m_pRenderer->Start(pause); 115 pContext->m_pRenderer->Start(pause);
116 if (bNeedToRestore) 116 if (bNeedToRestore)
117 pContext->m_pDevice->RestoreState(false); 117 pContext->m_pDevice->RestoreState(false);
118 } 118 }
119 119
120 class CPDF_CustomAccess final : public IFX_SeekableReadStream {
121 public:
122 explicit CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess);
123 ~CPDF_CustomAccess() override {}
124
125 // IFX_SeekableReadStream
126 FX_FILESIZE GetSize() override;
127 void Release() override;
128 bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override;
129
130 private:
131 FPDF_FILEACCESS m_FileAccess;
132 };
133
134 CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess)
135 : m_FileAccess(*pFileAccess) {}
136
137 FX_FILESIZE CPDF_CustomAccess::GetSize() {
138 return m_FileAccess.m_FileLen;
139 }
140
141 void CPDF_CustomAccess::Release() {
142 delete this;
143 }
144
145 bool CPDF_CustomAccess::ReadBlock(void* buffer,
146 FX_FILESIZE offset,
147 size_t size) {
148 if (offset < 0)
149 return false;
150
151 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size);
152 newPos += offset;
153 if (!newPos.IsValid() ||
154 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) {
155 return false;
156 }
157 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,
158 reinterpret_cast<uint8_t*>(buffer), size);
159 }
160
120 } // namespace 161 } // namespace
121 162
122 UnderlyingDocumentType* UnderlyingFromFPDFDocument(FPDF_DOCUMENT doc) { 163 UnderlyingDocumentType* UnderlyingFromFPDFDocument(FPDF_DOCUMENT doc) {
123 return static_cast<UnderlyingDocumentType*>(doc); 164 return static_cast<UnderlyingDocumentType*>(doc);
124 } 165 }
125 166
126 FPDF_DOCUMENT FPDFDocumentFromUnderlying(UnderlyingDocumentType* doc) { 167 FPDF_DOCUMENT FPDFDocumentFromUnderlying(UnderlyingDocumentType* doc) {
127 return static_cast<FPDF_DOCUMENT>(doc); 168 return static_cast<FPDF_DOCUMENT>(doc);
128 } 169 }
129 170
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 } 280 }
240 281
241 bool CFPDF_FileStream::Flush() { 282 bool CFPDF_FileStream::Flush() {
242 if (!m_pFS || !m_pFS->Flush) 283 if (!m_pFS || !m_pFS->Flush)
243 return true; 284 return true;
244 285
245 return m_pFS->Flush(m_pFS->clientData) == 0; 286 return m_pFS->Flush(m_pFS->clientData) == 0;
246 } 287 }
247 #endif // PDF_ENABLE_XFA 288 #endif // PDF_ENABLE_XFA
248 289
249 CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess) 290 IFX_SeekableReadStream* MakeSeekableReadStream(FPDF_FILEACCESS* pFileAccess) {
250 : m_FileAccess(*pFileAccess) {} 291 return new CPDF_CustomAccess(pFileAccess);
251
252 FX_FILESIZE CPDF_CustomAccess::GetSize() {
253 return m_FileAccess.m_FileLen;
254 }
255
256 void CPDF_CustomAccess::Release() {
257 delete this;
258 }
259
260 bool CPDF_CustomAccess::ReadBlock(void* buffer,
261 FX_FILESIZE offset,
262 size_t size) {
263 if (offset < 0)
264 return false;
265
266 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size);
267 newPos += offset;
268 if (!newPos.IsValid() ||
269 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) {
270 return false;
271 }
272 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,
273 reinterpret_cast<uint8_t*>(buffer), size);
274 } 292 }
275 293
276 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS 294 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS
277 static uint32_t foxit_sandbox_policy = 0xFFFFFFFF; 295 static uint32_t foxit_sandbox_policy = 0xFFFFFFFF;
278 296
279 void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable) { 297 void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable) {
280 switch (policy) { 298 switch (policy) {
281 case FPDF_POLICY_MACHINETIME_ACCESS: { 299 case FPDF_POLICY_MACHINETIME_ACCESS: {
282 if (enable) 300 if (enable)
283 foxit_sandbox_policy |= 0x01; 301 foxit_sandbox_policy |= 0x01;
(...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 if (!buffer) { 1195 if (!buffer) {
1178 *buflen = len; 1196 *buflen = len;
1179 } else if (len <= *buflen) { 1197 } else if (len <= *buflen) {
1180 memcpy(buffer, utf16Name.c_str(), len); 1198 memcpy(buffer, utf16Name.c_str(), len);
1181 *buflen = len; 1199 *buflen = len;
1182 } else { 1200 } else {
1183 *buflen = -1; 1201 *buflen = -1;
1184 } 1202 }
1185 return (FPDF_DEST)pDestObj; 1203 return (FPDF_DEST)pDestObj;
1186 } 1204 }
OLDNEW
« no previous file with comments | « fpdfsdk/fpdfeditimg.cpp ('k') | fpdfsdk/fsdk_define.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698