aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/libsample/blackbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/tests/libsample/blackbox.cpp')
-rw-r--r--sources/shiboken6/tests/libsample/blackbox.cpp81
1 files changed, 81 insertions, 0 deletions
diff --git a/sources/shiboken6/tests/libsample/blackbox.cpp b/sources/shiboken6/tests/libsample/blackbox.cpp
new file mode 100644
index 000000000..2ac435d3d
--- /dev/null
+++ b/sources/shiboken6/tests/libsample/blackbox.cpp
@@ -0,0 +1,81 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "blackbox.h"
+
+BlackBox::~BlackBox()
+{
+ // Free all maps.
+ for (const auto &p :m_objects)
+ delete p.second;
+ for (const auto &p : m_points)
+ delete p.second;
+}
+
+int BlackBox::keepObjectType(ObjectType *object)
+{
+ ++m_ticket;
+ m_objects.insert({m_ticket, object});
+ object->setParent(nullptr);
+
+ return m_ticket;
+}
+
+ObjectType *BlackBox::retrieveObjectType(int ticket)
+{
+ const auto it = m_objects.find(ticket);
+ if (it != m_objects.end()) {
+ ObjectType *second = it->second;
+ m_objects.erase(it);
+ return second;
+ }
+ return nullptr;
+}
+
+void BlackBox::disposeObjectType(int ticket)
+{
+ delete retrieveObjectType(ticket);
+}
+
+int BlackBox::keepPoint(Point *point)
+{
+ ++m_ticket;
+ m_points.insert({m_ticket, point});
+ return m_ticket;
+}
+
+Point *BlackBox::retrievePoint(int ticket)
+{
+ const auto it = m_points.find(ticket);
+ if (it != m_points.end()) {
+ Point *second = it->second;
+ m_points.erase(it);
+ return second;
+ }
+ return nullptr;
+}
+
+void BlackBox::disposePoint(int ticket)
+{
+ delete retrievePoint(ticket);
+}
+
+std::list<ObjectType*> BlackBox::objects()
+{
+ std::list<ObjectType*> l;
+
+ for (const auto &p : m_objects)
+ l.push_back(p.second);
+
+ return l;
+}
+
+std::list<Point*> BlackBox::points()
+{
+ std::list<Point*> l;
+
+ for (const auto &p : m_points)
+ l.push_back(p.second);
+
+ return l;
+}