diff options
author | David Robillard <d@drobilla.net> | 2011-05-18 02:17:20 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-05-18 02:17:20 +0000 |
commit | 602ad00d48276646ce85a9b472da6462eb323bae (patch) | |
tree | 66eee25ad4020219d450834559626ff242a6cef2 /sord/sordmm.hpp | |
parent | d6b69d9930b6bd918db346f8a03a99ed1e25cf65 (diff) | |
download | sord-602ad00d48276646ce85a9b472da6462eb323bae.tar.gz sord-602ad00d48276646ce85a9b472da6462eb323bae.tar.bz2 sord-602ad00d48276646ce85a9b472da6462eb323bae.zip |
Add sordi-i option to select input syntax.
Add syntax parameter to sord_write_string and sord_write_file.
Remove read functions in favour of sord_new_reader and direct use of SerdReader API.
Bump version to 0.3.0.
git-svn-id: http://svn.drobilla.net/sord/trunk@121 3d64ff67-21c5-427c-a301-fe4f08042e5a
Diffstat (limited to 'sord/sordmm.hpp')
-rw-r--r-- | sord/sordmm.hpp | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/sord/sordmm.hpp b/sord/sordmm.hpp index 6f9391b..75e4a21 100644 --- a/sord/sordmm.hpp +++ b/sord/sordmm.hpp @@ -63,7 +63,7 @@ protected: /** Collection of RDF namespaces with prefixes. */ class Namespaces : public Wrapper<SerdEnv*> { public: - Namespaces() : Wrapper<SerdEnv*>(serd_env_new()) {} + Namespaces() : Wrapper<SerdEnv*>(serd_env_new(NULL)) {} static inline SerdNode string_to_node(SerdType type, const std::string& s) { SerdNode ret = { @@ -391,19 +391,19 @@ public: inline const Node& base_uri() const { return _base; } inline void load_file(SerdEnv* env, + SerdSyntax syntax, const std::string& uri, const std::string& base_uri=""); inline void load_string(SerdEnv* env, + SerdSyntax syntax, const char* str, size_t len, - const std::string& base_uri, - const std::string lang="turtle"); + const std::string& base_uri); - inline void write_to_file_handle(FILE* fd, const char* lang); - inline void write_to_file(const std::string& uri, const char* lang); + inline void write_to_file(const std::string& uri, SerdSyntax syntax); - inline std::string write_to_string(const char* lang); + inline std::string write_to_string(SerdSyntax syntax); inline void add_statement(const Node& subject, const Node& predicate, @@ -436,15 +436,14 @@ Model::Model(World& world, const std::string& base_uri) inline void Model::load_string(SerdEnv* env, + SerdSyntax syntax, const char* str, size_t len, - const std::string& base_uri, - const std::string lang) + const std::string& base_uri) { - sord_read_string(_c_obj, - env, - (const uint8_t*)str, - (const uint8_t*)base_uri.c_str()); + SerdReader* reader = sord_new_reader(_c_obj, env, syntax, NULL); + serd_reader_read_string(reader, (const uint8_t*)str); + serd_reader_free(reader); } inline Model::~Model() @@ -454,41 +453,37 @@ inline Model::~Model() inline void Model::load_file(SerdEnv* env, + SerdSyntax syntax, const std::string& data_uri, const std::string& base_uri) { - // FIXME: blank prefix - sord_read_file(_c_obj, env, (const uint8_t*)data_uri.c_str(), - (base_uri == "") ? NULL : (const uint8_t*)base_uri.c_str(), - NULL, (const uint8_t*)"b"); -} + if (data_uri.substr(0, 5) != "file:") { + return; + } -inline void -Model::write_to_file_handle(FILE* fd, const char* lang) -{ - sord_write_file_handle(_c_obj, - _world.prefixes().c_obj(), - fd, - _base.to_u_string(), - NULL, - NULL); + // FIXME: blank prefix parameter? + SerdReader* reader = sord_new_reader(_c_obj, env, syntax, NULL); + serd_reader_read_file(reader, (const uint8_t*)(data_uri.c_str() + 5)); + serd_reader_free(reader); } inline void -Model::write_to_file(const std::string& uri, const char* lang) +Model::write_to_file(const std::string& uri, SerdSyntax syntax) { sord_write_file(_c_obj, _world.prefixes().c_obj(), + syntax, (const uint8_t*)uri.c_str(), NULL, NULL); } inline std::string -Model::write_to_string(const char* lang) +Model::write_to_string(SerdSyntax syntax) { uint8_t* const c_str = sord_write_string(_c_obj, _world.prefixes().c_obj(), + syntax, base_uri().to_u_string()); std::string ret((const char*)c_str); free(c_str); |