Digi XBeeLib fixed for NonCopyable issue

Dependents:   XBeeZB_Receive_Data

Fork of XBeeLib by Digi International Inc.

This lib fixes NonCopyable<T> issues of Digi XBeeLib. Also, lib has been reworked in order to make it RTOS-aware, overcoming several others issues due to stdio Mutex operations.

Utils/Debug.h

Committer:
Lorenzo Maiorfi
Date:
2018-03-25
Revision:
12:8dc9761210c1
Parent:
4:629712865107

File content as of revision 12:8dc9761210c1:

/**
 * Copyright (c) 2015 Digi International Inc.,
 * All rights not expressly granted are reserved.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
 * =======================================================================
 */

#if !defined(__DEBUG_H_)
#define __DEBUG_H_

#include "config.h"


#if defined(ENABLE_THREAD_SAFE_LOGGING)

#include "mbed.h"

extern EventQueue s_logging_event_queue;

#endif


#if defined(ENABLE_LOGGING)

#include "DigiLogger.h"

#if !(defined(ENABLE_THREAD_SAFE_LOGGING))

#define digi_log(...)  DigiLog::DigiLogger::log_format(__VA_ARGS__);

#else

#define digi_log(...)  s_logging_event_queue.call(&DigiLog::DigiLogger::log_format, __VA_ARGS__);

#endif

#else
#define digi_log(...)  do {} while(0)
#endif

#if defined(ENABLE_ASSERTIONS)
#include "mbed.h"
#if !(defined assert)

#if !(defined(ENABLE_THREAD_SAFE_LOGGING))

    #define assert(expr)        if (!(expr)) {                                      \
                                    DigiLog::DigiLogger::log_format(LogLevelNone, "Assertion failed: %s, file %s, line %d\n", \
                                         #expr, __FILE__, __LINE__);                \
                                    mbed_die();                                     \
                                }

#else

    #define assert(expr)        if (!(expr)) {                                      \
                                    s_logging_event_queue.call(&DigiLog::DigiLogger::log_format, LogLevelNone, "Assertion failed: %s, file %s, line %d\n", #expr, __FILE__, __LINE__ ); \
                                    mbed_die();                                     \
                                }

#endif

#endif
#else
#define assert(expr)
#endif

#endif /* __DEBUG_H_ */