A Discrete-Event Network Simulator
API
assert.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2006 INRIA, 2010 NICTA
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19 * Quincy Tse <quincy.tse@nicta.com.au>
20 */
21#ifndef NS_ASSERT_H
22#define NS_ASSERT_H
23
52#ifdef NS3_ASSERT_ENABLE
53
54#include <iostream>
55
56#include "fatal-error.h"
57
67#define NS_ASSERT(condition) \
68 do { \
69 if (!(condition)) \
70 { \
71 std::cerr << "assert failed. cond=\"" \
72 << # condition << "\", "; \
73 NS_FATAL_ERROR_NO_MSG (); \
74 } \
75 } while (false)
76
77
88#define NS_ASSERT_MSG(condition, message) \
89 do { \
90 if (!(condition)) \
91 { \
92 std::cerr << "assert failed. cond=\"" << \
93 # condition << "\", "; \
94 NS_FATAL_ERROR (message); \
95 } \
96 } while (false)
97
98#else /* NS3_ASSERT_ENABLE */
99
100#define NS_ASSERT(condition) \
101 do { \
102 (void)sizeof (condition); \
103 } while (false)
104
105#define NS_ASSERT_MSG(condition, message) \
106 do { \
107 (void)sizeof (condition); \
108 } while (false)
109
110#endif /* NS3_ASSERT_ENABLE */
111
112#endif /* ASSERT_H */
NS_FATAL_x macro definitions.