summaryrefslogtreecommitdiff
path: root/tests/glibmm_objectbase_move/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/glibmm_objectbase_move/main.cc')
-rw-r--r--tests/glibmm_objectbase_move/main.cc61
1 files changed, 2 insertions, 59 deletions
diff --git a/tests/glibmm_objectbase_move/main.cc b/tests/glibmm_objectbase_move/main.cc
index 697f3cf5..79bab6a4 100644
--- a/tests/glibmm_objectbase_move/main.cc
+++ b/tests/glibmm_objectbase_move/main.cc
@@ -1,66 +1,9 @@
+#include "../glibmm_objectbase/test_derived_objectbase.h"
+#include "../glibmm_object/test_derived_object.h"
#include <glibmm.h>
#include <iostream>
#include <stdlib.h>
-// A basic derived GObject, just to test Glib::ObjectBase.
-typedef struct
-{
- GObject parent;
-} TestDerived;
-
-typedef struct
-{
- GObjectClass parent;
-} TestDerivedClass;
-
-#define TEST_TYPE_DERIVED (test_derived_get_type())
-#define TEST_DERIVED(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TEST_TYPE_DERIVED, TestDerived))
-#define TEST_DERIVED_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_CAST((cls), TEST_TYPE_DERIVED, TestDerivedClass))
-#define TEST_DERIVED_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS((obj), TEST_TYPE_DERIVED, TestDerivedClass))
-
-static void
-test_derived_class_init(TestDerivedClass*)
-{
-}
-static void
-test_derived_init(TestDerived*)
-{
-}
-
-G_DEFINE_TYPE(TestDerived, test_derived, G_TYPE_OBJECT)
-
-class DerivedObjectBase : public Glib::ObjectBase
-{
-public:
- // A real application would never make the constructor public.
- // It would instead have a protected constructor and a public create() method.
- DerivedObjectBase(GObject* gobject, int i) : Glib::ObjectBase(nullptr), i_(i)
- {
- Glib::ObjectBase::initialize(gobject);
- }
-
- DerivedObjectBase(const DerivedObjectBase& src) = delete;
- DerivedObjectBase& operator=(const DerivedObjectBase& src) = delete;
-
- DerivedObjectBase(DerivedObjectBase&& src) noexcept : Glib::ObjectBase(std::move(src)),
- i_(std::move(src.i_))
- {
- ObjectBase::initialize_move(src.gobject_, &src);
- }
-
- DerivedObjectBase& operator=(DerivedObjectBase&& src) noexcept
- {
- Glib::ObjectBase::operator=(std::move(src));
- i_ = std::move(src.i_);
-
- return *this;
- }
-
- int i_;
-};
-
static void
test_objectbase_move_constructor()
{