// 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 "qmt/infrastructure/handle.h" #include "qmt/infrastructure/handles.h" #include "qmt/infrastructure/uid.h" #include "qark/qxmloutarchive.h" #include "qark/qxmlinarchive.h" #include "qark/serialize.h" #include "qark/access.h" namespace qark { // Uid template inline void save(Archive &archive, const qmt::Uid &uid) { archive.write(uid.toString()); } template inline void load(Archive &archive, qmt::Uid &uid) { QString s; archive.read(&s); uid.fromString(s); } // Handle template inline void serialize(Archive &archive, qmt::Handle &handle) { archive || tag("handle", handle) || attr("uid", handle, &qmt::Handle::uid, &qmt::Handle::setUid) || attr("target", handle, &qmt::Handle::target, &qmt::Handle::setTarget) || end; } // Handles template inline void serialize(Archive &archive, qmt::Handles &handles) { archive || tag("handles", handles) || attr("handles", handles, &qmt::Handles::get, &qmt::Handles::set) || end; } } // namespace qark