1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef TONIC_COMMON_MACROS_H_
6#define TONIC_COMMON_MACROS_H_
7
8#include <cassert>
9#include <cstdio>
10#include <cstdlib>
11
12#include "tonic/common/log.h"
13
14#define TONIC_DISALLOW_COPY(TypeName) TypeName(const TypeName&) = delete;
15
16#define TONIC_DISALLOW_ASSIGN(TypeName) \
17 void operator=(const TypeName&) = delete;
18
19#define TONIC_DISALLOW_COPY_AND_ASSIGN(TypeName) \
20 TONIC_DISALLOW_COPY(TypeName) \
21 TONIC_DISALLOW_ASSIGN(TypeName)
22
23#define TONIC_CHECK(condition) \
24 { \
25 if (!(condition)) { \
26 tonic::Log("assertion failed " #condition); \
27 abort(); \
28 } \
29 }
30
31#ifndef NDEBUG
32#define TONIC_DCHECK TONIC_CHECK
33#else // NDEBUG
34#define TONIC_DCHECK (void)
35#endif // NDEBUG
36
37#endif // TONIC_COMMON_MACROS_H_
38