/src/qpdf/libqpdf/QPDFExc.cc
Line | Count | Source |
1 | | #include <qpdf/QPDFExc.hh> |
2 | | |
3 | | QPDFExc::QPDFExc( |
4 | | qpdf_error_code_e error_code, |
5 | | std::string const& filename, |
6 | | std::string const& object, |
7 | | qpdf_offset_t offset, |
8 | | std::string const& message) : |
9 | 377k | std::runtime_error(createWhat(filename, object, (offset ? offset : -1), message)), |
10 | 377k | error_code(error_code), |
11 | 377k | filename(filename), |
12 | 377k | object(object), |
13 | 377k | offset(offset ? offset : -1), |
14 | 377k | message(message) |
15 | 377k | { |
16 | 377k | } |
17 | | |
18 | | QPDFExc::QPDFExc( |
19 | | qpdf_error_code_e error_code, |
20 | | std::string const& filename, |
21 | | std::string const& object, |
22 | | qpdf_offset_t offset, |
23 | | std::string const& message, |
24 | | bool zero_offset_valid) : |
25 | 335k | std::runtime_error( |
26 | 335k | createWhat(filename, object, (offset || zero_offset_valid ? offset : -1), message)), |
27 | 335k | error_code(error_code), |
28 | 335k | filename(filename), |
29 | 335k | object(object), |
30 | 335k | offset(offset || zero_offset_valid ? offset : -1), |
31 | 335k | message(message) |
32 | 335k | { |
33 | 335k | } |
34 | | |
35 | | std::string |
36 | | QPDFExc::createWhat( |
37 | | std::string const& filename, |
38 | | std::string const& object, |
39 | | qpdf_offset_t offset, |
40 | | std::string const& message) |
41 | 712k | { |
42 | 712k | std::string result; |
43 | 712k | if (!filename.empty()) { |
44 | 653k | result += filename; |
45 | 653k | } |
46 | 712k | if (!(object.empty() && offset < 0)) { |
47 | 606k | if (!filename.empty()) { |
48 | 547k | result += " ("; |
49 | 547k | } |
50 | 606k | if (!object.empty()) { |
51 | 566k | result += object; |
52 | 566k | if (offset >= 0) { |
53 | 506k | result += ", "; |
54 | 506k | } |
55 | 566k | } |
56 | 606k | if (offset >= 0) { |
57 | 546k | result += "offset " + std::to_string(offset); |
58 | 546k | } |
59 | 606k | if (!filename.empty()) { |
60 | 547k | result += ")"; |
61 | 547k | } |
62 | 606k | } |
63 | 712k | if (!result.empty()) { |
64 | 712k | result += ": "; |
65 | 712k | } |
66 | 712k | result += message; |
67 | 712k | return result; |
68 | 712k | } |
69 | | |
70 | | qpdf_error_code_e |
71 | | QPDFExc::getErrorCode() const |
72 | 0 | { |
73 | 0 | return this->error_code; |
74 | 0 | } |
75 | | |
76 | | std::string const& |
77 | | QPDFExc::getFilename() const |
78 | 0 | { |
79 | 0 | return this->filename; |
80 | 0 | } |
81 | | |
82 | | std::string const& |
83 | | QPDFExc::getObject() const |
84 | 0 | { |
85 | 0 | return this->object; |
86 | 0 | } |
87 | | |
88 | | qpdf_offset_t |
89 | | QPDFExc::getFilePosition() const |
90 | 0 | { |
91 | 0 | return offset < 0 ? 0 : offset; |
92 | 0 | } |
93 | | |
94 | | std::string const& |
95 | | QPDFExc::getMessageDetail() const |
96 | 0 | { |
97 | 0 | return this->message; |
98 | 0 | } |