From 393bbb5dadb6a936e487f10dfae05f905b7d3d6b Mon Sep 17 00:00:00 2001 From: Adrian Szyndela Date: Wed, 28 Oct 2020 08:02:08 +0100 Subject: [PATCH] printing: add generic data extraction interface for XML db Change-Id: Icf05d2d7a8d5077b9efa23aee7c99af8b9264242 --- src/internal/storage_backend_xml_printing.hpp | 81 +++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/internal/storage_backend_xml_printing.hpp diff --git a/src/internal/storage_backend_xml_printing.hpp b/src/internal/storage_backend_xml_printing.hpp new file mode 100644 index 0000000..f2fd66a --- /dev/null +++ b/src/internal/storage_backend_xml_printing.hpp @@ -0,0 +1,81 @@ +#pragma once + +/* MIT License + * + * Copyright (c) 2020 Samsung Electronics Co., Ltd + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is furnished + * to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. */ + +#include "storage_backend_xml.hpp" + +namespace ldp_xml_parser { + +class StorageBackendXMLPrinting { +public: + auto itemAccessGetType(const ItemAccess &item) const + { return item.getType(); } + + auto itemAccessGetUid(const ItemAccess &item) const + { return item.getUid(); } + + auto itemAccessGetGid(const ItemAccess &item) const + { return item.getGid(); } + + template + auto itemSrGetName(const ItemSR &item) const + { return item.getName(); } + + template + auto itemSrGetIsNamePrefix(const ItemSR &item) const + { return item.isNamePrefix(); } + + template + auto itemSrGetInterface(const ItemSR &item) const + { return item.getInterface(); } + + template + auto itemSrGetMember(const ItemSR &item) const + { return item.getMember(); } + + template + auto itemSrGetPath(const ItemSR &item) const + { return item.getPath(); } + + template + auto itemSrGetMessageType(const ItemSR &item) const + { return item.getType(); } + + template + auto itemGetDecisionItem(const Item &item) const + { return item.getDecision(); } + + auto decisionItemGetDecision(const DecisionItem &item) const + { return item.getDecision(); } + + auto decisionItemGetPrivilege(const DecisionItem &item) const + { return item.getPrivilege(); } + + auto stringGetCStr(const boost::string_ref &str) const + { return str.data(); } + + auto stringGetSize(const boost::string_ref &str) const + { return str.size(); } +}; + +} -- 2.7.4