diff options
author | David Robillard <d@drobilla.net> | 2015-02-24 09:20:22 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2015-02-24 09:20:22 +0000 |
commit | 9d7c1e971d51561c4bb28fa1064503e5f266908f (patch) | |
tree | e34b0f84c05020fea44fd7b8cfd55341aff50668 /ingen/serialisation | |
parent | f408b385c2795359cfacb09032089c8387b74f45 (diff) | |
download | ingen-9d7c1e971d51561c4bb28fa1064503e5f266908f.tar.gz ingen-9d7c1e971d51561c4bb28fa1064503e5f266908f.tar.bz2 ingen-9d7c1e971d51561c4bb28fa1064503e5f266908f.zip |
Demodularize Parser and Serialiser.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5606 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen/serialisation')
-rw-r--r-- | ingen/serialisation/Parser.hpp | 74 | ||||
-rw-r--r-- | ingen/serialisation/Serialiser.hpp | 102 |
2 files changed, 0 insertions, 176 deletions
diff --git a/ingen/serialisation/Parser.hpp b/ingen/serialisation/Parser.hpp deleted file mode 100644 index 446b3988..00000000 --- a/ingen/serialisation/Parser.hpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2012 David Robillard <http://drobilla.net/> - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see <http://www.gnu.org/licenses/>. -*/ - -/** - @defgroup IngenSerialisation Turtle Serialisation -*/ - -#ifndef INGEN_SERIALISATION_PARSER_HPP -#define INGEN_SERIALISATION_PARSER_HPP - -#include <string> -#include <list> - -#include <boost/optional.hpp> - -#include "ingen/Node.hpp" -#include "raul/Path.hpp" -#include "raul/URI.hpp" - -namespace Ingen { - -class Interface; -class World; - -namespace Serialisation { - -/** - Read Ingen objects from Turtle files or strings. - - @ingroup IngenSerialisation -*/ -class Parser { -public: - explicit Parser() {} - - virtual ~Parser() {} - - typedef Node::Properties Properties; - - virtual bool parse_file( - World* world, - Interface* target, - const std::string& path, - boost::optional<Raul::Path> parent = boost::optional<Raul::Path>(), - boost::optional<Raul::Symbol> symbol = boost::optional<Raul::Symbol>(), - boost::optional<Properties> data = boost::optional<Properties>()); - - virtual boost::optional<Raul::URI> parse_string( - World* world, - Interface* target, - const std::string& str, - const std::string& base_uri, - boost::optional<Raul::Path> parent = boost::optional<Raul::Path>(), - boost::optional<Raul::Symbol> symbol = boost::optional<Raul::Symbol>(), - boost::optional<Properties> data = boost::optional<Properties>()); -}; - -} // namespace Serialisation -} // namespace Ingen - -#endif // INGEN_SERIALISATION_PARSER_HPP diff --git a/ingen/serialisation/Serialiser.hpp b/ingen/serialisation/Serialiser.hpp deleted file mode 100644 index 80a01b89..00000000 --- a/ingen/serialisation/Serialiser.hpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2012 David Robillard <http://drobilla.net/> - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef INGEN_SERIALISATION_SERIALISER_HPP -#define INGEN_SERIALISATION_SERIALISER_HPP - -#include <stdexcept> -#include <string> - -#include "raul/Path.hpp" - -#include "sord/sordmm.hpp" - -#include "ingen/Node.hpp" - -namespace Ingen { - -class Arc; -class Node; -class Store; -class World; - -namespace Serialisation { - -/** - Write Ingen objects to Turtle files or strings. - - @ingroup IngenSerialisation -*/ -class Serialiser -{ -public: - explicit Serialiser(World& world); - virtual ~Serialiser(); - - /** Write a graph and all its contents as a complete bundle. */ - virtual void write_bundle(SPtr<const Node> graph, - const std::string& path); - - /** Begin a serialization to a string. - * - * This must be called before any serializing methods. - * - * The results of the serialization will be returned by the finish() method after - * the desired objects have been serialised. - * - * All serialized paths will have the root path chopped from their prefix - * (therefore all serialized paths must be descendants of the root) - */ - virtual void start_to_string(const Raul::Path& root, - const std::string& base_uri); - - /** Begin a serialization to a file. - * - * This must be called before any serializing methods. - * - * All serialized paths will have the root path chopped from their prefix - * (therefore all serialized paths must be descendants of the root) - */ - virtual void start_to_file(const Raul::Path& root, - const std::string& filename); - - /** Serialize an object (graph, block, or port). */ - virtual void serialise(SPtr<const Node> object) - throw (std::logic_error); - - /** Serialize an arc. */ - virtual void serialise_arc(const Sord::Node& parent, - SPtr<const Arc> arc) - throw (std::logic_error); - - /** Finish serialization. - * - * If this is a file serialization, this must be called to finish and close - * the output file, and the empty string is returned. - * - * If this is a string serialization, the serialized result is returned. - */ - virtual std::string finish(); - -private: - struct Impl; - Impl* me; -}; - -} // namespace Serialisation -} // namespace Ingen - -#endif // INGEN_SERIALISATION_SERIALISER_HPP |