OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium 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 MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ | |
6 #define MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ | |
7 | |
8 #include "mojo/public/cpp/system/macros.h" | |
9 | |
10 namespace mojo { | |
11 | |
12 class CopyableType { | |
13 public: | |
14 CopyableType(); | |
15 CopyableType(const CopyableType& other); | |
16 CopyableType& operator=(const CopyableType& other); | |
17 ~CopyableType(); | |
18 | |
19 bool copied() const { return copied_; } | |
20 static size_t num_instances() { return num_instances_; } | |
21 CopyableType* ptr() const { return ptr_; } | |
22 void ResetCopied() { copied_ = false; } | |
23 | |
24 private: | |
25 bool copied_; | |
26 static size_t num_instances_; | |
27 CopyableType* ptr_; | |
28 }; | |
29 | |
30 class MoveOnlyType { | |
31 MOJO_MOVE_ONLY_TYPE(MoveOnlyType) | |
32 public: | |
33 typedef MoveOnlyType Data_; | |
34 MoveOnlyType(); | |
35 MoveOnlyType(MoveOnlyType&& other); | |
36 MoveOnlyType& operator=(MoveOnlyType&& other); | |
37 ~MoveOnlyType(); | |
38 | |
39 bool moved() const { return moved_; } | |
40 static size_t num_instances() { return num_instances_; } | |
41 MoveOnlyType* ptr() const { return ptr_; } | |
42 void ResetMoved() { moved_ = false; } | |
43 | |
44 private: | |
45 bool moved_; | |
46 static size_t num_instances_; | |
47 MoveOnlyType* ptr_; | |
48 }; | |
49 | |
50 } // namespace mojo | |
51 | |
52 #endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ | |
OLD | NEW |