summaryrefslogtreecommitdiffstats
path: root/src/libs/serialisation
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-10-08 17:13:34 +0000
committerDavid Robillard <d@drobilla.net>2007-10-08 17:13:34 +0000
commitec9540a559c40046123a2ac4be83faf90b79fbb0 (patch)
tree214f8463bc6c9ef12ac715f65db41427152a7710 /src/libs/serialisation
parentbade64c9aca86225fa37950c17aabc02a3f4a041 (diff)
downloadingen-ec9540a559c40046123a2ac4be83faf90b79fbb0.tar.gz
ingen-ec9540a559c40046123a2ac4be83faf90b79fbb0.tar.bz2
ingen-ec9540a559c40046123a2ac4be83faf90b79fbb0.zip
Dynamically load Serialiser from serialisation module, make it actually work, etc.
git-svn-id: http://svn.drobilla.net/lad/ingen@850 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/serialisation')
-rw-r--r--src/libs/serialisation/Loader.hpp3
-rw-r--r--src/libs/serialisation/Makefile.am7
-rw-r--r--src/libs/serialisation/Serialiser.hpp2
-rw-r--r--src/libs/serialisation/serialisation.cpp12
-rw-r--r--src/libs/serialisation/serialisation.hpp7
5 files changed, 26 insertions, 5 deletions
diff --git a/src/libs/serialisation/Loader.hpp b/src/libs/serialisation/Loader.hpp
index 158831cb..d363bf28 100644
--- a/src/libs/serialisation/Loader.hpp
+++ b/src/libs/serialisation/Loader.hpp
@@ -23,11 +23,10 @@
#include <boost/optional.hpp>
#include <raul/SharedPtr.hpp>
#include <raul/Path.hpp>
-#include <raul/Atom.hpp>
#include <raul/Table.hpp>
#include "interface/GraphObject.hpp"
-namespace Raul { class Atom; namespace RDF { class World; } }
+namespace Raul { namespace RDF { class World; } }
namespace Ingen { namespace Shared { class EngineInterface; } }
using namespace Ingen::Shared;
diff --git a/src/libs/serialisation/Makefile.am b/src/libs/serialisation/Makefile.am
index 0a914222..579da448 100644
--- a/src/libs/serialisation/Makefile.am
+++ b/src/libs/serialisation/Makefile.am
@@ -4,7 +4,12 @@ moduledir = $(libdir)/ingen
module_LTLIBRARIES = libingen_serialisation.la
-libingen_serialisation_la_CXXFLAGS = -I$(top_srcdir)/ingen/src/common @RAUL_CFLAGS@ @GLIBMM_CFLAGS@
+libingen_serialisation_la_CXXFLAGS = \
+ -I$(top_srcdir)/ingen/src/common \
+ -I$(top_srcdir)/ingen/src/libs \
+ @RAUL_CFLAGS@ \
+ @GLIBMM_CFLAGS@
+
libingen_serialisation_la_LDFLAGS = -no-undefined -module -avoid-version
libingen_serialisation_la_LIBADD = @RAUL_LIBS@ @GLIBMM_LIBS@
diff --git a/src/libs/serialisation/Serialiser.hpp b/src/libs/serialisation/Serialiser.hpp
index 23d10c82..fb1df5d0 100644
--- a/src/libs/serialisation/Serialiser.hpp
+++ b/src/libs/serialisation/Serialiser.hpp
@@ -46,7 +46,7 @@ namespace Shared {
namespace Serialisation {
-/** Serializes Ingen objects (patches, nodes, etc) to RDF.
+/** Serialises Ingen objects (patches, nodes, etc) to RDF.
*
* \ingroup IngenClient
*/
diff --git a/src/libs/serialisation/serialisation.cpp b/src/libs/serialisation/serialisation.cpp
index 969cf9f2..5da28529 100644
--- a/src/libs/serialisation/serialisation.cpp
+++ b/src/libs/serialisation/serialisation.cpp
@@ -15,8 +15,11 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include CONFIG_H_PATH
+#include "module/World.hpp"
#include "serialisation.hpp"
#include "Loader.hpp"
+#include "Serialiser.hpp"
namespace Ingen {
namespace Serialisation {
@@ -28,6 +31,15 @@ new_loader()
return new Loader();
}
+
+Ingen::Serialisation::Serialiser*
+new_serialiser(Ingen::Shared::World* world)
+{
+ assert(world->rdf_world);
+ return new Serialiser(*world->rdf_world);
+}
+
+
} // namespace Serialisation
} // namespace Ingen
diff --git a/src/libs/serialisation/serialisation.hpp b/src/libs/serialisation/serialisation.hpp
index f65b9c2e..8f6e8291 100644
--- a/src/libs/serialisation/serialisation.hpp
+++ b/src/libs/serialisation/serialisation.hpp
@@ -19,14 +19,19 @@
#define INGEN_SERIALISATION_H
namespace Ingen {
+
+namespace Shared { class World; }
+
namespace Serialisation {
class Loader;
+class Serialiser;
extern "C" {
- extern Loader* new_loader();
+ extern Loader* new_loader();
+ extern Serialiser* new_serialiser(Ingen::Shared::World* world);
}