summaryrefslogtreecommitdiffstats
path: root/ingen/World.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ingen/World.hpp')
-rw-r--r--ingen/World.hpp150
1 files changed, 0 insertions, 150 deletions
diff --git a/ingen/World.hpp b/ingen/World.hpp
deleted file mode 100644
index 13bd7001..00000000
--- a/ingen/World.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- This file is part of Ingen.
- Copyright 2007-2015 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_WORLD_HPP
-#define INGEN_WORLD_HPP
-
-#include <mutex>
-#include <string>
-
-#include "ingen/ingen.h"
-#include "ingen/types.hpp"
-#include "lv2/lv2plug.in/ns/ext/log/log.h"
-#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
-#include "raul/Noncopyable.hpp"
-
-typedef struct LilvWorldImpl LilvWorld;
-
-namespace Sord { class World; }
-
-namespace Ingen {
-
-class Configuration;
-class EngineBase;
-class Forge;
-class Interface;
-class LV2Features;
-class Log;
-class Parser;
-class Serialiser;
-class Store;
-class URI;
-class URIMap;
-class URIs;
-
-/** The "world" all Ingen modules share.
- *
- * This is the root to which all components of Ingen are connected. It
- * contains all necessary shared data (including the world for libraries like
- * Sord and Lilv) and holds references to components.
- *
- * Some functionality in Ingen is implemented in dynamically loaded modules,
- * which are loaded using this interface. When loaded, those modules add
- * facilities to the World which can then be used throughout the code.
- *
- * The world is used in any process which uses the Ingen as a library, both
- * client and server (e.g. the world may not actually contain an Engine, since
- * it maybe running in another process or even on a different machine).
- *
- * @ingroup IngenShared
- */
-class INGEN_API World : public Raul::Noncopyable {
-public:
- /** Construct a new Ingen world.
- * @param map LV2 URID map implementation, or NULL to use internal.
- * @param unmap LV2 URID unmap implementation, or NULL to use internal.
- * @param log LV2 log implementation, or NULL to use internal.
- */
- World(LV2_URID_Map* map, LV2_URID_Unmap* unmap, LV2_Log_Log* log);
-
- virtual ~World();
-
- /** Load configuration from files and command line.
- * @param argc Argument count (as in C main())
- * @param argv Argument vector (as in C main())
- */
- virtual void load_configuration(int& argc, char**& argv);
-
- /** Load an Ingen module by name (e.g. "server", "gui", etc.)
- * @return True on success.
- */
- virtual bool load_module(const char* name);
-
- /** Run a loaded module (modules that "run" only, e.g. gui).
- * @return True on success.
- */
- virtual bool run_module(const char* name);
-
- /** A function to create a new remote Interface. */
- typedef SPtr<Interface> (*InterfaceFactory)(World* world,
- const URI& engine_uri,
- SPtr<Interface> respondee);
-
- /** Register an InterfaceFactory (for module implementations). */
- virtual void add_interface_factory(const std::string& scheme,
- InterfaceFactory factory);
-
- /** Return a new Interface to control a server.
- * @param engine_uri The URI of the possibly remote server to control.
- * @param respondee The Interface that will receive responses to commands
- * and broadcasts, if applicable.
- */
- virtual SPtr<Interface> new_interface(const URI& engine_uri,
- SPtr<Interface> respondee);
-
- /** Run a script. */
- virtual bool run(const std::string& mime_type,
- const std::string& filename);
-
- virtual void set_engine(SPtr<EngineBase> e);
- virtual void set_interface(SPtr<Interface> i);
- virtual void set_store(SPtr<Store> s);
-
- virtual SPtr<EngineBase> engine();
- virtual SPtr<Interface> interface();
- virtual SPtr<Parser> parser();
- virtual SPtr<Serialiser> serialiser();
- virtual SPtr<Store> store();
-
- virtual int& argc();
- virtual char**& argv();
- virtual Configuration& conf();
-
- /** Lock for rdf_world() or lilv_world(). */
- virtual std::mutex& rdf_mutex();
-
- virtual Sord::World* rdf_world();
- virtual LilvWorld* lilv_world();
-
- virtual LV2Features& lv2_features();
- virtual Ingen::Forge& forge();
- virtual URIMap& uri_map();
- virtual URIs& uris();
-
- virtual void set_jack_uuid(const std::string& uuid);
- virtual std::string jack_uuid();
-
- virtual Log& log();
-
-private:
- class Impl;
-
- Impl* _impl;
-};
-
-} // namespace Ingen
-
-#endif // INGEN_WORLD_HPP