summaryrefslogtreecommitdiff
path: root/gpr/source/lib/dng_sdk/dng_exceptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpr/source/lib/dng_sdk/dng_exceptions.h')
-rw-r--r--gpr/source/lib/dng_sdk/dng_exceptions.h301
1 files changed, 301 insertions, 0 deletions
diff --git a/gpr/source/lib/dng_sdk/dng_exceptions.h b/gpr/source/lib/dng_sdk/dng_exceptions.h
new file mode 100644
index 0000000..7bfb1cd
--- /dev/null
+++ b/gpr/source/lib/dng_sdk/dng_exceptions.h
@@ -0,0 +1,301 @@
+/*****************************************************************************/
+// Copyright 2006-2007 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in
+// accordance with the terms of the Adobe license agreement accompanying it.
+/*****************************************************************************/
+
+/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_exceptions.h#1 $ */
+/* $DateTime: 2012/05/30 13:28:51 $ */
+/* $Change: 832332 $ */
+/* $Author: tknoll $ */
+
+/** \file
+ * C++ exception support for DNG SDK.
+*/
+
+/*****************************************************************************/
+
+#ifndef __dng_exceptions__
+#define __dng_exceptions__
+
+/*****************************************************************************/
+
+#include "dng_errors.h"
+#include "dng_flags.h"
+
+/*****************************************************************************/
+
+/// Display a warning message. Note that this may just eat the message.
+
+void ReportWarning (const char *message,
+ const char *sub_message = NULL);
+
+/*****************************************************************************/
+
+/// Display an error message. Note that this may just eat the message.
+
+void ReportError (const char *message,
+ const char *sub_message = NULL);
+
+/*****************************************************************************/
+
+/// \brief All exceptions thrown by the DNG SDK use this exception class.
+
+class dng_exception
+ {
+
+ private:
+
+ dng_error_code fErrorCode;
+
+ public:
+
+ /// Construct an exception representing the given error code.
+ /// \param code Error code this exception is for.
+
+ dng_exception (dng_error_code code)
+
+ : fErrorCode (code)
+
+ {
+ }
+
+ virtual ~dng_exception ()
+ {
+ }
+
+ /// Getter for error code of this exception
+ /// \retval The error code of this exception.
+
+ dng_error_code ErrorCode () const
+ {
+ return fErrorCode;
+ }
+
+ };
+
+/******************************************************************************/
+
+/// \brief Throw an exception based on an arbitrary error code.
+
+void Throw_dng_error (dng_error_code err,
+ const char * message = NULL,
+ const char * sub_message = NULL,
+ bool silent = false);
+
+/******************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code if
+/// error_code is not dng_error_none .
+
+inline void Fail_dng_error (dng_error_code err)
+ {
+
+ if (err != dng_error_none)
+ {
+
+ Throw_dng_error (err);
+
+ }
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_unknown .
+
+inline void ThrowProgramError (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_unknown, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_not_yet_implemented .
+
+inline void ThrowNotYetImplemented (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_not_yet_implemented, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_silent .
+
+inline void ThrowSilentError ()
+ {
+
+ Throw_dng_error (dng_error_silent);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_user_canceled .
+
+inline void ThrowUserCanceled ()
+ {
+
+ Throw_dng_error (dng_error_user_canceled);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_host_insufficient .
+
+inline void ThrowHostInsufficient (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_host_insufficient, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_memory .
+
+inline void ThrowMemoryFull (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_memory, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_bad_format .
+
+inline void ThrowBadFormat (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_bad_format, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_matrix_math .
+
+inline void ThrowMatrixMath (const char * sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_matrix_math, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_open_file .
+
+inline void ThrowOpenFile (const char * sub_message = NULL, bool silent = false)
+ {
+
+ Throw_dng_error (dng_error_open_file, NULL, sub_message, silent);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_read_file .
+
+inline void ThrowReadFile (const char *sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_read_file, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_write_file .
+
+inline void ThrowWriteFile (const char *sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_write_file, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_end_of_file .
+
+inline void ThrowEndOfFile (const char *sub_message = NULL)
+ {
+
+ Throw_dng_error (dng_error_end_of_file, NULL, sub_message);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_file_is_damaged .
+
+inline void ThrowFileIsDamaged ()
+ {
+
+ Throw_dng_error (dng_error_file_is_damaged);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_image_too_big_dng .
+
+inline void ThrowImageTooBigDNG ()
+ {
+
+ Throw_dng_error (dng_error_image_too_big_dng);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_image_too_big_tiff .
+
+inline void ThrowImageTooBigTIFF ()
+ {
+
+ Throw_dng_error (dng_error_image_too_big_tiff);
+
+ }
+
+/*****************************************************************************/
+
+/// \brief Convenience function to throw dng_exception with error code
+/// dng_error_unsupported_dng .
+
+inline void ThrowUnsupportedDNG ()
+ {
+
+ Throw_dng_error (dng_error_unsupported_dng);
+
+ }
+
+/*****************************************************************************/
+
+#endif
+
+/*****************************************************************************/