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 #ifdef PDF_REPORT
9 
10 #include "SkPdfReporter.h"
11 
12 #include "SkTypes.h"
13 
14 const char* severityName[] = {
15 "Info",
16 "CodeWarning",
17 "Warning",
18 "IgnoreError",
19 "Error",
20 "FatalError",
21 };
22 
getSeverityName(SkPdfIssueSeverity sev)23 const char* getSeverityName(SkPdfIssueSeverity sev) {
24     if (0 <= sev && sev < _kCount__SkPdfIssueSeverity) {
25         return severityName[sev];
26     }
27     SkASSERT(false);
28     return "UNKOWN SEVERITY";
29 }
30 
31 // TODO(edisonn): add a flag to set the minimum warning level
32 // TODO(edisonn): get the address in the file, and report it.
33 // TODO(edisonn): build a html file based on warnings which would showe the original pdf
34 //                content, with tooltips where warnings/errors were reported.
35 
36 
SkPdfReport(SkPdfIssueSeverity sev,SkPdfIssue issue,const char * context,const SkPdfNativeObject * obj,SkPdfContext * pdfContext)37 void SkPdfReport(SkPdfIssueSeverity sev, SkPdfIssue issue,
38                  const char* context,
39                  const SkPdfNativeObject* obj,
40                  SkPdfContext* pdfContext) {
41     if (sev >= kIgnoreError_SkPdfIssueSeverity) {
42         printf("%s: %s\n", getSeverityName(sev), context);
43     }
44 }
45 
SkPdfReportIf(bool report,SkPdfIssueSeverity sev,SkPdfIssue issue,const char * context,const SkPdfNativeObject * obj,SkPdfContext * pdfContext)46 void SkPdfReportIf(bool report,
47                    SkPdfIssueSeverity sev, SkPdfIssue issue,
48                    const char* context,
49                    const SkPdfNativeObject* obj,
50                    SkPdfContext* pdfContext) {
51     if (!report) {
52         return;
53     }
54     SkPdfReport(sev, issue, context, obj, pdfContext);
55 }
56 
SkPdfReportUnexpectedType(SkPdfIssueSeverity sev,const char * context,const SkPdfNativeObject * obj,int anyOfTypes,SkPdfContext * pdfContext)57 void SkPdfReportUnexpectedType(SkPdfIssueSeverity sev,
58                                const char* context,
59                                const SkPdfNativeObject* obj,
60                                int anyOfTypes, SkPdfContext* pdfContext) {
61     if (sev >= kIgnoreError_SkPdfIssueSeverity) {
62         printf("%s: %s\n", getSeverityName(sev), context);
63     }
64 }
65 
66 #endif  // PDF_REPORT
67