diff options
author | David Robillard <d@drobilla.net> | 2007-07-04 04:09:25 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-07-04 04:09:25 +0000 |
commit | 1225ea7c0c4c451a5b47eeecef8a945d2c4a8388 (patch) | |
tree | 43cae2e6d0c64e423b16cbeea11abefc6d3ba47f /src | |
parent | 1657e94918720cfe352a09f06cc756f277349628 (diff) | |
download | raul-1225ea7c0c4c451a5b47eeecef8a945d2c4a8388.tar.gz raul-1225ea7c0c4c451a5b47eeecef8a945d2c4a8388.tar.bz2 raul-1225ea7c0c4c451a5b47eeecef8a945d2c4a8388.zip |
Fix model URI serialization relative to base URI.
git-svn-id: http://svn.drobilla.net/lad/raul@574 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r-- | src/RDFModel.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/RDFModel.cpp b/src/RDFModel.cpp index 9d8fac1..df5936d 100644 --- a/src/RDFModel.cpp +++ b/src/RDFModel.cpp @@ -119,16 +119,22 @@ Model::serialize_to_file_handle(FILE* fd) /** Begin a serialization to a file. * + * \a uri must be a local (file://) URI. + * * This must be called before any write methods. */ void -Model::serialize_to_file(const string& filename) +Model::serialize_to_file(const Glib::ustring& uri_str) { - _serializer = librdf_new_serializer(_world.world(), RDF_LANG, NULL, NULL); - setup_prefixes(); - librdf_serializer_serialize_model_to_file(_serializer, filename.c_str(), NULL, _model); - librdf_free_serializer(_serializer); - _serializer = NULL; + librdf_uri* uri = librdf_new_uri(_world.world(), (const unsigned char*)uri_str.c_str()); + if (uri && librdf_uri_is_file_uri(uri)) { + _serializer = librdf_new_serializer(_world.world(), RDF_LANG, NULL, NULL); + setup_prefixes(); + librdf_serializer_serialize_model_to_file(_serializer, librdf_uri_to_filename(uri), uri, _model); + librdf_free_serializer(_serializer); + _serializer = NULL; + } + librdf_free_uri(uri); } |