| OLD | NEW |
| (Empty) |
| 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 | |
| 14 class SkPdfNativeObject; | |
| 15 class SkPdfContext; | |
| 16 | |
| 17 // TODO(edisonn): ability to turn on asserts for known good files | |
| 18 | |
| 19 // Severity of the issue, if it something interesting info, the result of an NYI
feature, | |
| 20 // sme ignorable defect in pdf or a major issue. | |
| 21 enum SkPdfIssueSeverity { | |
| 22 kInfo_SkPdfIssueSeverity, | |
| 23 kCodeWarning_SkPdfIssueSeverity, // e.g. like NYI, PDF file is Ok. | |
| 24 kWarning_SkPdfIssueSeverity, | |
| 25 kIgnoreError_SkPdfIssueSeverity, | |
| 26 kError_SkPdfIssueSeverity, | |
| 27 kFatalError_SkPdfIssueSeverity, | |
| 28 | |
| 29 _kCount__SkPdfIssueSeverity | |
| 30 }; | |
| 31 | |
| 32 // The type of the issue. | |
| 33 enum SkPdfIssue { | |
| 34 kNoIssue_SkPdfIssue, | |
| 35 | |
| 36 kNullObject_SkPdfIssue, | |
| 37 kUnusedObject_SkPdfIssue, | |
| 38 kUnexpectedArraySize_SkPdfIssue, | |
| 39 kMissingEncoding_SkPdfIssue, | |
| 40 kNYI_SkPdfIssue, | |
| 41 kIncostistentSizes_SkPdfIssue, | |
| 42 kMissingRequiredKey_SkPdfIssue, | |
| 43 kRecursiveReferencing_SkPdfIssue, | |
| 44 kStackNestingOverflow_SkPdfIssue, | |
| 45 kStackOverflow_SkPdfIssue, | |
| 46 kIncositentSyntax_SkPdfIssue, | |
| 47 kMissingFont_SkPdfIssue, | |
| 48 kInvalidFont_SkPdfIssue, | |
| 49 kMissingBT_SkPdfIssue, | |
| 50 kOutOfRange_SkPdfIssue, | |
| 51 kUnknownBlendMode_SkPdfIssue, | |
| 52 kMissingExtGState_SkPdfIssue, | |
| 53 kMissingXObject_SkPdfIssue, | |
| 54 kReadStreamError_SkPdfIssue, | |
| 55 kMissingToken_SkPdfIssue, | |
| 56 kBadReference_SkPdfIssue, | |
| 57 kNoFlateLibrary_SkPdfIssue, | |
| 58 kBadStream_SkPdfIssue, | |
| 59 | |
| 60 _kCount__SkPdfIssue | |
| 61 }; | |
| 62 | |
| 63 #ifdef PDF_REPORT | |
| 64 | |
| 65 // Calls SkPdfReport(...) if report is true. | |
| 66 void SkPdfReportIf(bool report, | |
| 67 SkPdfIssueSeverity sev, SkPdfIssue issue, | |
| 68 const char* context, | |
| 69 const SkPdfNativeObject* obj, | |
| 70 SkPdfContext* pdfContext); | |
| 71 | |
| 72 // Reports an issue, along with information where it happened, for example obj c
an be used to report | |
| 73 // where exactly in th pdf there is a corruption | |
| 74 // TODO(edisonn): add ability to report the callstack | |
| 75 void SkPdfReport(SkPdfIssueSeverity sev, SkPdfIssue issue, | |
| 76 const char* context, | |
| 77 const SkPdfNativeObject* obj, | |
| 78 SkPdfContext* pdfContext); | |
| 79 | |
| 80 // Reports that an object does not have the expected type | |
| 81 // TODO(edisonn): replace with SkPdfReportIfUnexpectedType() to simplify the cal
lers? | |
| 82 // TODO(edisonn): pass the keyword/operator too which triggers the issue. | |
| 83 void SkPdfReportUnexpectedType(SkPdfIssueSeverity sev, | |
| 84 const char* context, | |
| 85 const SkPdfNativeObject* obj, int anyOfTypes, | |
| 86 SkPdfContext* pdfContext); | |
| 87 | |
| 88 // Code only in builds with reporting turn on. | |
| 89 #define SkPdfREPORTCODE(code) code | |
| 90 | |
| 91 #else // !PDF_REPORT | |
| 92 | |
| 93 #define SkPdfReportIf(a,b,c,d,e,f) | |
| 94 #define SkPdfReport(a,b,c,d,e) | |
| 95 #define SkPdfReportUnexpectedType(a,b,c,d,e) | |
| 96 #define SkPdfREPORTCODE(code) | |
| 97 | |
| 98 #endif // PDF_REPORT | |
| 99 | |
| 100 #endif // SkPdfReporter_DEFINED | |
| OLD | NEW |