You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.4 KiB
134 lines
3.4 KiB
/*****************************************************************************/
|
|
// 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_assertions.h#3 $ */
|
|
/* $DateTime: 2012/09/05 12:31:51 $ */
|
|
/* $Change: 847652 $ */
|
|
/* $Author: tknoll $ */
|
|
|
|
/** \file
|
|
* Conditionally compiled assertion check support.
|
|
*/
|
|
|
|
/*****************************************************************************/
|
|
|
|
#ifndef __dng_assertions__
|
|
#define __dng_assertions__
|
|
|
|
/*****************************************************************************/
|
|
|
|
#include "dng_exceptions.h"
|
|
#include "dng_flags.h"
|
|
|
|
/*****************************************************************************/
|
|
|
|
#if qDNGDebug
|
|
|
|
/// Platform-specific function to display an assert.
|
|
|
|
void dng_show_message (const char *s);
|
|
|
|
/// Show a formatted error message.
|
|
|
|
void dng_show_message_f (const char *fmt, ...);
|
|
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
|
|
#ifndef DNG_ASSERT
|
|
|
|
#if qDNGDebug
|
|
|
|
/// Conditionally compiled macro to check an assertion and display a message if
|
|
/// it fails and assertions are compiled in via qDNGDebug
|
|
/// \param x Predicate which must be true.
|
|
/// \param y String to display if x is not true.
|
|
|
|
#define DNG_ASSERT(x,y) { if (!(x)) dng_show_message (y); }
|
|
|
|
#else
|
|
|
|
/// Conditionally compiled macro to check an assertion and display a message if
|
|
/// it fails and assertions are compiled in via qDNGDebug
|
|
/// \param x Predicate which must be true.
|
|
/// \param y String to display if x is not true.
|
|
|
|
#define DNG_ASSERT(x,y) do { } while(false)
|
|
|
|
#endif
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
|
|
#ifndef DNG_REQUIRE
|
|
|
|
#if qDNGDebug
|
|
|
|
/// Conditionally compiled macro to check an assertion, display a message, and throw
|
|
/// an exception if it fails and assertions are compiled in via qDNGDebug
|
|
/// \param condition Predicate which must be true.
|
|
/// \param msg String to display if condition is not true.
|
|
|
|
#define DNG_REQUIRE(condition,msg) \
|
|
do \
|
|
{ \
|
|
\
|
|
if (!(condition)) \
|
|
{ \
|
|
\
|
|
DNG_ASSERT(condition, msg); \
|
|
\
|
|
ThrowProgramError (msg); \
|
|
\
|
|
} \
|
|
\
|
|
} \
|
|
while (0)
|
|
|
|
#else
|
|
|
|
/// Conditionally compiled macro to check an assertion, display a message, and throw
|
|
/// an exception if it fails and assertions are compiled in via qDNGDebug
|
|
/// \param condition Predicate which must be true.
|
|
/// \param msg String to display if condition is not true.
|
|
|
|
#define DNG_REQUIRE(condition,msg) \
|
|
do \
|
|
{ \
|
|
\
|
|
if (!(condition)) \
|
|
{ \
|
|
\
|
|
ThrowProgramError (msg); \
|
|
\
|
|
} \
|
|
\
|
|
} \
|
|
while (0)
|
|
|
|
#endif
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
|
|
#ifndef DNG_REPORT
|
|
|
|
/// Macro to display an informational message
|
|
/// \param x String to display.
|
|
|
|
#define DNG_REPORT(x) DNG_ASSERT (false, x)
|
|
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
|
|
#endif
|
|
|
|
/*****************************************************************************/
|