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

Side by Side Diff: fpdfsdk/fpdfview.cpp

Issue 2549573003: Make concrete stream classes private to .cpp, part 4. (Closed)
Patch Set: rebase 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/cpdfsdk_formfillenvironment.cpp ('k') | fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp » ('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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size); 151 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size);
152 newPos += offset; 152 newPos += offset;
153 if (!newPos.IsValid() || 153 if (!newPos.IsValid() ||
154 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) { 154 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) {
155 return false; 155 return false;
156 } 156 }
157 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, 157 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,
158 reinterpret_cast<uint8_t*>(buffer), size); 158 reinterpret_cast<uint8_t*>(buffer), size);
159 } 159 }
160 160
161 } // namespace 161 #ifdef PDF_ENABLE_XFA
162 class CFPDF_FileStream : public IFX_SeekableStream {
163 public:
164 explicit CFPDF_FileStream(FPDF_FILEHANDLER* pFS);
165 ~CFPDF_FileStream() override {}
162 166
163 UnderlyingDocumentType* UnderlyingFromFPDFDocument(FPDF_DOCUMENT doc) { 167 // IFX_SeekableStream:
164 return static_cast<UnderlyingDocumentType*>(doc); 168 IFX_SeekableStream* Retain() override;
165 } 169 void Release() override;
170 FX_FILESIZE GetSize() override;
171 bool IsEOF() override;
172 FX_FILESIZE GetPosition() override;
173 bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override;
174 size_t ReadBlock(void* buffer, size_t size) override;
175 bool WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override;
176 bool Flush() override;
166 177
167 FPDF_DOCUMENT FPDFDocumentFromUnderlying(UnderlyingDocumentType* doc) { 178 void SetPosition(FX_FILESIZE pos) { m_nCurPos = pos; }
168 return static_cast<FPDF_DOCUMENT>(doc);
169 }
170 179
171 UnderlyingPageType* UnderlyingFromFPDFPage(FPDF_PAGE page) { 180 protected:
172 return static_cast<UnderlyingPageType*>(page); 181 FPDF_FILEHANDLER* m_pFS;
173 } 182 FX_FILESIZE m_nCurPos;
183 };
174 184
175 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
176 #ifdef PDF_ENABLE_XFA
177 return doc ? UnderlyingFromFPDFDocument(doc)->GetPDFDoc() : nullptr;
178 #else // PDF_ENABLE_XFA
179 return UnderlyingFromFPDFDocument(doc);
180 #endif // PDF_ENABLE_XFA
181 }
182
183 FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc) {
184 #ifdef PDF_ENABLE_XFA
185 return doc ? FPDFDocumentFromUnderlying(
186 new CPDFXFA_Context(pdfium::WrapUnique(doc)))
187 : nullptr;
188 #else // PDF_ENABLE_XFA
189 return FPDFDocumentFromUnderlying(doc);
190 #endif // PDF_ENABLE_XFA
191 }
192
193 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page) {
194 #ifdef PDF_ENABLE_XFA
195 return page ? UnderlyingFromFPDFPage(page)->GetPDFPage() : nullptr;
196 #else // PDF_ENABLE_XFA
197 return UnderlyingFromFPDFPage(page);
198 #endif // PDF_ENABLE_XFA
199 }
200
201 CFX_DIBitmap* CFXBitmapFromFPDFBitmap(FPDF_BITMAP bitmap) {
202 return static_cast<CFX_DIBitmap*>(bitmap);
203 }
204
205 #ifdef PDF_ENABLE_XFA
206 CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) { 185 CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) {
207 m_pFS = pFS; 186 m_pFS = pFS;
208 m_nCurPos = 0; 187 m_nCurPos = 0;
209 } 188 }
210 189
211 IFX_SeekableStream* CFPDF_FileStream::Retain() { 190 IFX_SeekableStream* CFPDF_FileStream::Retain() {
212 return this; 191 return this;
213 } 192 }
214 193
215 void CFPDF_FileStream::Release() { 194 void CFPDF_FileStream::Release() {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 259 }
281 260
282 bool CFPDF_FileStream::Flush() { 261 bool CFPDF_FileStream::Flush() {
283 if (!m_pFS || !m_pFS->Flush) 262 if (!m_pFS || !m_pFS->Flush)
284 return true; 263 return true;
285 264
286 return m_pFS->Flush(m_pFS->clientData) == 0; 265 return m_pFS->Flush(m_pFS->clientData) == 0;
287 } 266 }
288 #endif // PDF_ENABLE_XFA 267 #endif // PDF_ENABLE_XFA
289 268
269 } // namespace
270
271 UnderlyingDocumentType* UnderlyingFromFPDFDocument(FPDF_DOCUMENT doc) {
272 return static_cast<UnderlyingDocumentType*>(doc);
273 }
274
275 FPDF_DOCUMENT FPDFDocumentFromUnderlying(UnderlyingDocumentType* doc) {
276 return static_cast<FPDF_DOCUMENT>(doc);
277 }
278
279 UnderlyingPageType* UnderlyingFromFPDFPage(FPDF_PAGE page) {
280 return static_cast<UnderlyingPageType*>(page);
281 }
282
283 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
284 #ifdef PDF_ENABLE_XFA
285 return doc ? UnderlyingFromFPDFDocument(doc)->GetPDFDoc() : nullptr;
286 #else // PDF_ENABLE_XFA
287 return UnderlyingFromFPDFDocument(doc);
288 #endif // PDF_ENABLE_XFA
289 }
290
291 FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc) {
292 #ifdef PDF_ENABLE_XFA
293 return doc ? FPDFDocumentFromUnderlying(
294 new CPDFXFA_Context(pdfium::WrapUnique(doc)))
295 : nullptr;
296 #else // PDF_ENABLE_XFA
297 return FPDFDocumentFromUnderlying(doc);
298 #endif // PDF_ENABLE_XFA
299 }
300
301 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page) {
302 #ifdef PDF_ENABLE_XFA
303 return page ? UnderlyingFromFPDFPage(page)->GetPDFPage() : nullptr;
304 #else // PDF_ENABLE_XFA
305 return UnderlyingFromFPDFPage(page);
306 #endif // PDF_ENABLE_XFA
307 }
308
309 CFX_DIBitmap* CFXBitmapFromFPDFBitmap(FPDF_BITMAP bitmap) {
310 return static_cast<CFX_DIBitmap*>(bitmap);
311 }
312
290 IFX_SeekableReadStream* MakeSeekableReadStream(FPDF_FILEACCESS* pFileAccess) { 313 IFX_SeekableReadStream* MakeSeekableReadStream(FPDF_FILEACCESS* pFileAccess) {
291 return new CPDF_CustomAccess(pFileAccess); 314 return new CPDF_CustomAccess(pFileAccess);
292 } 315 }
293 316
317 #ifdef PDF_ENABLE_XFA
318 IFX_SeekableStream* MakeSeekableStream(FPDF_FILEHANDLER* pFilehandler) {
319 return new CFPDF_FileStream(pFilehandler);
320 }
321 #endif // PDF_ENABLE_XFA
322
294 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS 323 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS
295 static uint32_t foxit_sandbox_policy = 0xFFFFFFFF; 324 static uint32_t foxit_sandbox_policy = 0xFFFFFFFF;
296 325
297 void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable) { 326 void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable) {
298 switch (policy) { 327 switch (policy) {
299 case FPDF_POLICY_MACHINETIME_ACCESS: { 328 case FPDF_POLICY_MACHINETIME_ACCESS: {
300 if (enable) 329 if (enable)
301 foxit_sandbox_policy |= 0x01; 330 foxit_sandbox_policy |= 0x01;
302 else 331 else
303 foxit_sandbox_policy &= 0xFFFFFFFE; 332 foxit_sandbox_policy &= 0xFFFFFFFE;
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 if (!buffer) { 1224 if (!buffer) {
1196 *buflen = len; 1225 *buflen = len;
1197 } else if (len <= *buflen) { 1226 } else if (len <= *buflen) {
1198 memcpy(buffer, utf16Name.c_str(), len); 1227 memcpy(buffer, utf16Name.c_str(), len);
1199 *buflen = len; 1228 *buflen = len;
1200 } else { 1229 } else {
1201 *buflen = -1; 1230 *buflen = -1;
1202 } 1231 }
1203 return (FPDF_DEST)pDestObj; 1232 return (FPDF_DEST)pDestObj;
1204 } 1233 }
OLDNEW
« no previous file with comments | « fpdfsdk/cpdfsdk_formfillenvironment.cpp ('k') | fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698