32 #include "exiv2lib_export.h" 85 enum Level { debug = 0, info = 1, warn = 2, error = 3, mute = 4 };
92 typedef void (*Handler)(int,
const char*);
105 std::ostringstream& os();
115 static void setLevel(
Level level);
121 static void setHandler(Handler handler);
123 static Level level();
125 static Handler handler();
127 static void defaultHandler(
int level,
const char* s);
134 static Handler handler_;
136 const Level msgType_;
138 std::ostringstream os_;
144 #define EXV_DEBUG if (LogMsg::debug >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::debug).os() 145 #define EXV_INFO if (LogMsg::info >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::info).os() 147 #define EXV_WARNING if (LogMsg::warn >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::warn).os() 149 #define EXV_ERROR if (LogMsg::error >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::error).os() 155 # pragma warning( disable : 4275 ) 159 template<
typename charT,
typename T>
162 std::basic_ostringstream<charT> os;
181 virtual int code()
const throw() =0;
187 return os << error.what();
192 kerGeneralError = -1,
202 kerDataSourceOpenFailed,
204 kerFileContainsUnknownImageType,
205 kerMemoryContainsUnknownImageType,
206 kerUnsupportedImageType,
207 kerFailedToReadImageData,
209 kerFailedToMapFileForReadWrite,
212 kerMemoryTransferFailed,
213 kerInputDataReadFailed,
215 kerNoImageInInputData,
222 kerUnsupportedDataAreaOffsetType,
224 kerUnsupportedDateFormat,
225 kerUnsupportedTimeFormat,
226 kerWritingImageFormatUnsupported,
227 kerInvalidSettingForImage,
229 kerFunctionNotSupported,
230 kerNoNamespaceInfoForXmpPrefix,
231 kerNoPrefixForNamespace,
232 kerTooLargeJpegSegment,
233 kerUnhandledXmpdatum,
236 kerDecodeLangAltPropertyFailed,
237 kerDecodeLangAltQualifierFailed,
238 kerEncodeLangAltPropertyFailed,
239 kerPropertyNameIdentificationFailed,
240 kerSchemaNamespaceNotRegistered,
241 kerNoNamespaceForPrefix,
242 kerAliasesNotSupported,
244 kerTooManyTiffDirectoryEntries,
245 kerMultipleTiffArrayElementTagsInDirectory,
246 kerWrongTiffArrayElementTagType,
247 kerInvalidKeyXmpValue,
248 kerInvalidIccProfile,
250 kerTiffDirectoryTooLarge,
253 kerCorruptedMetadata,
254 kerArithmeticOverflow,
262 template<
typename charT>
275 template<
typename A,
typename B>
279 template<
typename A,
typename B,
typename C>
288 virtual inline int code()
const throw();
293 virtual inline const char* what()
const throw();
294 #ifdef EXV_UNICODE_PATH 299 virtual inline const wchar_t* wwhat()
const throw();
313 std::basic_string<charT> arg1_;
314 std::basic_string<charT> arg2_;
315 std::basic_string<charT> arg3_;
317 #ifdef EXV_UNICODE_PATH 324 #ifdef EXV_UNICODE_PATH 333 const char*
errMsg(
int code);
335 template<
typename charT>
337 : code_(code), count_(0)
342 template<
typename charT>
template<
typename A>
349 template<
typename charT>
template<
typename A,
typename B>
351 : code_(code), count_(2),
358 template<
typename charT>
template<
typename A,
typename B,
typename C>
360 : code_(code), count_(3),
368 template<
typename charT>
373 template<
typename charT>
379 template<
typename charT>
385 #ifdef EXV_UNICODE_PATH 386 template<
typename charT>
389 return wmsg_.c_str();
394 # pragma warning( default : 4275 ) 398 #endif // #ifndef ERROR_HPP_ Entry::setDataArea: Value too large.
Definition: error.hpp:220
const char * errMsg(int code)
Return the error message for the error with code code.
Definition: error.cpp:298
std::basic_string< charT > toBasicString(const T &arg)
Generalised toString function.
Definition: error.hpp:160
Entry::setValue: Value too large.
Definition: error.hpp:218
virtual ~BasicError()
Virtual destructor. (Needed because of throw())
Definition: error.hpp:369
Type definitions for Exiv2 and related functionality.
virtual int code() const
Return the error code.
Definition: error.hpp:374
virtual const char * what() const
Return the error message as a C-string. The pointer returned by what() is valid only as long as the B...
Definition: error.hpp:380
BasicError(ErrorCode code)
Constructor taking only an error code.
Definition: error.hpp:336
IPTC string type.
Definition: types.hpp:147
Level
Defined log levels. To suppress all log messages, either set the log level to mute or set the log mes...
Definition: error.hpp:85
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Error class interface. Allows the definition and use of a hierarchy of error classes which can all be...
Definition: error.hpp:174
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition: datasets.cpp:709
Simple error class used for exceptions. An output operator is provided to print errors to a stream...
Definition: error.hpp:263
BasicError< char > Error
Error class used for exceptions (std::string based)
Definition: error.hpp:323
ErrorCode
Complete list of all Exiv2 error codes.
Definition: error.hpp:191
Class for a log message, used by the library. Applications can set the log level and provide a custom...
Definition: error.hpp:75