Index: mojo/public/cpp/bindings/tests/container_test_util.h |
diff --git a/mojo/public/cpp/bindings/tests/container_test_util.h b/mojo/public/cpp/bindings/tests/container_test_util.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1c3e5eef6de7dc7a3f2bea9c23fd2b06c71482e0 |
--- /dev/null |
+++ b/mojo/public/cpp/bindings/tests/container_test_util.h |
@@ -0,0 +1,52 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ |
+#define MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ |
+ |
+#include "mojo/public/cpp/system/macros.h" |
+ |
+namespace mojo { |
+ |
+class CopyableType { |
+ public: |
+ CopyableType(); |
+ CopyableType(const CopyableType& other); |
+ CopyableType& operator=(const CopyableType& other); |
+ ~CopyableType(); |
+ |
+ bool copied() const { return copied_; } |
+ static size_t num_instances() { return num_instances_; } |
+ CopyableType* ptr() const { return ptr_; } |
+ void ResetCopied() { copied_ = false; } |
+ |
+ private: |
+ bool copied_; |
+ static size_t num_instances_; |
+ CopyableType* ptr_; |
+}; |
+ |
+class MoveOnlyType { |
+ MOJO_MOVE_ONLY_TYPE_FOR_CPP_03(MoveOnlyType, RValue) |
+ public: |
+ typedef MoveOnlyType Data_; |
+ MoveOnlyType(); |
+ MoveOnlyType(RValue other); |
+ MoveOnlyType& operator=(RValue other); |
+ ~MoveOnlyType(); |
+ |
+ bool moved() const { return moved_; } |
+ static size_t num_instances() { return num_instances_; } |
+ MoveOnlyType* ptr() const { return ptr_; } |
+ void ResetMoved() { moved_ = false; } |
+ |
+ private: |
+ bool moved_; |
+ static size_t num_instances_; |
+ MoveOnlyType* ptr_; |
+}; |
+ |
+} // namespace mojo |
+ |
+#endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_CONTAINER_TEST_UTIL_H_ |