• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 FLUTTER_FML_MACROS_H_
6 #define FLUTTER_FML_MACROS_H_
7 
8 #ifndef FML_USED_ON_EMBEDDER
9 
10 #define FML_EMBEDDER_ONLY [[deprecated]]
11 
12 #else  // FML_USED_ON_EMBEDDER
13 
14 #define FML_EMBEDDER_ONLY
15 
16 #endif  // FML_USED_ON_EMBEDDER
17 
18 #define FML_DISALLOW_COPY(TypeName) TypeName(const TypeName&) = delete
19 
20 #define FML_DISALLOW_ASSIGN(TypeName) \
21   TypeName& operator=(const TypeName&) = delete
22 
23 #define FML_DISALLOW_MOVE(TypeName) \
24   TypeName(TypeName&&) = delete;    \
25   TypeName& operator=(TypeName&&) = delete
26 
27 #define FML_DISALLOW_COPY_AND_ASSIGN(TypeName) \
28   TypeName(const TypeName&) = delete;          \
29   TypeName& operator=(const TypeName&) = delete
30 
31 #define FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName) \
32   TypeName(const TypeName&) = delete;               \
33   TypeName(TypeName&&) = delete;                    \
34   TypeName& operator=(const TypeName&) = delete;    \
35   TypeName& operator=(TypeName&&) = delete
36 
37 #define FML_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
38   TypeName() = delete;                               \
39   FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)
40 
41 #endif  // FLUTTER_FML_MACROS_H_
42