From 1baf5042feff7627430c29cb4092da265a3fe21a Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 17 Mar 2021 18:35:48 +0100 Subject: [PATCH] removed: SpaceToJson --- space/spacetojson.cpp | 117 ------------------ space/spacetojson.h | 273 ------------------------------------------ 2 files changed, 390 deletions(-) delete mode 100644 space/spacetojson.cpp delete mode 100644 space/spacetojson.h diff --git a/space/spacetojson.cpp b/space/spacetojson.cpp deleted file mode 100644 index 64d09f8..0000000 --- a/space/spacetojson.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * This file is a part of PikoTools - * and is distributed under the (new) BSD licence. - * Author: Tomasz Sowa - */ - -/* - * Copyright (c) 2012, Tomasz Sowa - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name Tomasz Sowa nor the names of contributors to this - * project may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "spacetojson.h" - - -namespace PT -{ - -#ifdef nonexisting_value - - -void SpaceToJSON::Clear() -{ - numeric.clear(); - boolean.clear(); - table.clear(); -} - - -void SpaceToJSON::TreatAsTable(const wchar_t * space_name) -{ - table.insert(space_name); -} - - -void SpaceToJSON::TreatAsTable(const std::wstring & space_name) -{ - table.insert(space_name); -} - - - -void SpaceToJSON::TreatAsNumeric(const wchar_t * name) -{ - numeric.insert(name); -} - - -void SpaceToJSON::TreatAsNumeric(const std::wstring & name) -{ - numeric.insert(name); - -} - - -void SpaceToJSON::TreatAsBool(const wchar_t * name) -{ - boolean.insert(name); -} - -void SpaceToJSON::TreatAsBool(const std::wstring & name) -{ - boolean.insert(name); -} - - - -bool SpaceToJSON::IsNumeric(const std::wstring & name) -{ - std::set::iterator i = numeric.find(name); - return i != numeric.end(); -} - - -bool SpaceToJSON::IsBool(const std::wstring & name) -{ - std::set::iterator i = boolean.find(name); - return i != boolean.end(); -} - -bool SpaceToJSON::IsTable(const std::wstring & name) -{ - std::set::iterator i = table.find(name); - return i != table.end(); -} - -#endif - - - -} // namespace - diff --git a/space/spacetojson.h b/space/spacetojson.h deleted file mode 100644 index 6338e06..0000000 --- a/space/spacetojson.h +++ /dev/null @@ -1,273 +0,0 @@ -/* - * This file is a part of PikoTools - * and is distributed under the (new) BSD licence. - * Author: Tomasz Sowa - */ - -/* - * Copyright (c) 2012-2017, Tomasz Sowa - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name Tomasz Sowa nor the names of contributors to this - * project may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef headerfile_picotools_space_spacetojson -#define headerfile_picotools_space_spacetojson - -#include -#include -#include -#include "space.h" - - - -namespace PT -{ - -#ifdef nonexisting_value - - -class SpaceToJSON -{ -public: - - void Clear(); - - void TreatAsTable(const wchar_t * space_name); - void TreatAsTable(const std::wstring & space_name); - - void TreatAsNumeric(const wchar_t * name); - void TreatAsNumeric(const std::wstring & name); - - void TreatAsBool(const wchar_t * name); - void TreatAsBool(const std::wstring & name); - - template - void Serialize(Space & space, Stream & out, bool use_indents = false); - - -private: - - std::set numeric, boolean, table; - - - template - void Serialize(Space & space, Stream & out, bool use_indents, int level, - bool use_comma, bool treat_as_table, bool skip_name); - - template - void SerializeTableMulti(Space & space, Stream & out, bool use_indents, int level, bool use_comma); - - template - void PrintToken(Stream & out, const StringType & str, bool check_specials = false); - - template - void PrintLevel(Stream & out, bool use_indents, int level); - - - bool IsNumeric(const std::wstring & name); - bool IsBool(const std::wstring & name); - bool IsTable(const std::wstring & name); - -}; - - - - -template -void SpaceToJSON::PrintLevel(Stream & out, bool use_indents, int level) -{ - if( use_indents ) - { - for(int i=0 ; i -void SpaceToJSON::PrintToken(Stream & out, const StringType & str, bool is_special) -{ - if( !is_special ) - out << '\"'; - - for(size_t i=0 ; i -void SpaceToJSON::SerializeTableMulti(Space & space, Stream & out, bool use_indents, int level, bool use_comma) -{ -Space::Table::const_iterator i2; -size_t v; -size_t index = 0; -bool is_special; - - if( use_comma && !space.table.empty() ) - { - PrintLevel(out, use_indents, level); - out << L",\n"; - } - - for(i2 = space.table.begin() ; i2 != space.table.end() ; ++i2, ++index) - { - is_special = IsNumeric(i2->first) || IsBool(i2->first); - - PrintLevel(out, use_indents, level); - PrintToken(out, i2->first); - out << L": "; - - if( i2->second.size() != 1 ) - out << '['; - - for(v = 0 ; v < i2->second.size() ; ++v) - { - if( v > 0 ) - PrintLevel(out, use_indents, level + i2->first.size() + 3); - - PrintToken(out, i2->second[v], is_special); - - if( v + 1 < i2->second.size() ) - out << L",\n"; - } - - if( i2->second.size() != 1 ) - out << ']'; - - if( index + 1 < space.table.size() ) - out << ','; - - out << '\n'; - } -} - - - - -template -void SpaceToJSON::Serialize(Space & space, Stream & out, bool use_indents, int level, - bool use_comma, bool treat_as_table, bool skip_name) -{ - if( use_comma ) - { - PrintLevel(out, use_indents, level); - out << L",\n"; - } - - PrintLevel(out, use_indents, level); - - if( !skip_name ) - { - if( space.name.empty() ) - { - out << L"\"empty\": "; - } - else - { - PrintToken(out, space.name); - out << L": "; - } - } - - if( treat_as_table ) - out << L"[\n"; - else - out << L"{\n"; - - bool printed_something = false; - - if( !treat_as_table ) - { - SerializeTableMulti(space, out, use_indents, level, false); - - if( !space.table.empty() ) - printed_something = true; - } - - /* - * !! IMPROVE ME when serializing a table - * we can make a test whether a space is empty and has a name - * in such a case put it as a string - * this is the same way as the json parser works - * - */ - for(size_t i=0 ; iname); - Serialize(*space.spaces[i], out, use_indents, level+1, printed_something, next_is_table, next_skip_name); - printed_something = true; - } - - PrintLevel(out, use_indents, level); - - if( treat_as_table ) - out << L"]\n"; - else - out << L"}\n"; -} - - - -template -void SpaceToJSON::Serialize(Space & space, Stream & out, bool use_indents) -{ - bool treat_as_table = IsTable(space.name); - Serialize(space, out, use_indents, 0, false, treat_as_table, true); -} - -#endif - - -} // namespace - -#endif -