// Copyright (C) 2016 Jochen Becher // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "objectid.h" #include namespace qark { namespace impl { class LoadingRefMap { public: bool hasObject(const ObjectId &id) { return m_references.find(id) != m_references.end(); } template T object(const ObjectId &id) { return reinterpret_cast(m_references.value(id)); } template void addObject(const ObjectId &id, T *p) { m_references[id] = reinterpret_cast(p); } private: typedef ObjectId KeyType; typedef void *ValueType; typedef QMap MapType; MapType m_references; }; } // namespace impl } // namespace qark