SkPdfReporter.h revision e50d9a1fcd9c4298079ff54f9a40c9708d30f8c6
1/* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 9#ifndef SkPdfReporter_DEFINED 10#define SkPdfReporter_DEFINED 11 12#include "SkPdfConfig.h" 13 14class SkPdfNativeObject; 15class SkPdfContext; 16 17// TODO(edisonn): ability to turn on asserts for known good files 18 19enum SkPdfIssueSeverity { 20 kInfo_SkPdfIssueSeverity, 21 kCodeWarning_SkPdfIssueSeverity, // e.g. like NYI, PDF file is Ok. 22 kWarning_SkPdfIssueSeverity, 23 kIgnoreError_SkPdfIssueSeverity, 24 kError_SkPdfIssueSeverity, 25 kFatalError_SkPdfIssueSeverity, 26 27 _kCount__SkPdfIssueSeverity 28}; 29 30enum SkPdfIssue { 31 kNoIssue_SkPdfIssue, 32 33 kNullObject_SkPdfIssue, 34 kUnexpectedArraySize_SkPdfIssue, 35 kMissingEncoding_SkPdfIssue, 36 kNYI_SkPdfIssue, 37 kIncostistentSizes_SkPdfIssue, 38 kMissingRequiredKey_SkPdfIssue, 39 kRecursiveReferencing_SkPdfIssue, 40 kStackNestingOverflow_SkPdfIssue, 41 kStackOverflow_SkPdfIssue, 42 kIncositentSyntax_SkPdfIssue, 43 kMissingFont_SkPdfIssue, 44 kInvalidFont_SkPdfIssue, 45 kMissingBT_SkPdfIssue, 46 kOutOfRange_SkPdfIssue, 47 kUnknownBlendMode_SkPdfIssue, 48 kMissingExtGState_SkPdfIssue, 49 kMissingXObject_SkPdfIssue, 50 kReadStreamError_SkPdfIssue, 51 kMissingToken_SkPdfIssue, 52 kBadReference_SkPdfIssue, 53 kNoFlateLibrary_SkPdfIssue, 54 kBadStream_SkPdfIssue, 55 56 _kCount__SkPdfIssue 57}; 58 59#ifdef PDF_REPORT 60 61void SkPdfReportIf(bool report, 62 SkPdfIssueSeverity sev, SkPdfIssue issue, 63 const char* context, 64 const SkPdfNativeObject* obj, 65 SkPdfContext* pdfContext); 66void SkPdfReport(SkPdfIssueSeverity sev, SkPdfIssue issue, 67 const char* context, 68 const SkPdfNativeObject* obj, 69 SkPdfContext* pdfContext); 70void SkPdfReportUnexpectedType(SkPdfIssueSeverity sev, 71 const char* context, 72 const SkPdfNativeObject* obj, int anyOfTypes, 73 SkPdfContext* pdfContext); 74#define SkPdfREPORTCODE(code) code 75 76#else // !PDF_REPORT 77 78#define SkPdfReportIf(a,b,c,d,e,f) 79#define SkPdfReport(a,b,c,d,e) 80#define SkPdfReportUnexpectedType(a,b,c,d,e) 81#define SkPdfREPORTCODE(code) 82 83#endif // PDF_REPORT 84 85#endif // SkPdfReporter_DEFINED 86