X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Frdff.h;h=3d1362cf0e66f861acb543c2243ee2a02f082a5c;hb=cfe9ae636e0ee61cafdff43b3bd6967d835ef629;hp=960085db04498cc03ae3bba142584596d5d16b7b;hpb=b502bbc61895d61c39bf240b47e8a3664be2c541;p=ardour.git diff --git a/libs/ardour/rdff.h b/libs/ardour/rdff.h index 960085db04..3d1362cf0e 100644 --- a/libs/ardour/rdff.h +++ b/libs/ardour/rdff.h @@ -2,26 +2,17 @@ RDFF - RDF in RIFF Copyright 2011 David Robillard - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef RDFF_RDFF_H @@ -65,7 +56,7 @@ typedef struct { } PACKED RDFFChunk; /** - Body of a URID chunk. + Body of a RDFF "urid" chunk. */ typedef struct { uint32_t id; /**< Numeric ID of URI in this RDFF. */ @@ -73,14 +64,15 @@ typedef struct { } PACKED RDFFURIChunk; /** - Body of a KVAL chunk. + Body of a RDFF "trip" chunk. */ typedef struct { - uint32_t key; /**< Predicate URI ID. */ - uint32_t type; /**< Type URI ID. */ - uint32_t size; /**< Size of object data. */ - char value[]; /**< Object data. */ -} PACKED RDFFValueChunk; + uint32_t subject; /**< Subject URI ID. */ + uint32_t predicate; /**< Predicate URI ID. */ + uint32_t object_type; /**< Object type URI ID. */ + uint32_t object_size; /**< Size of object data. */ + char object[]; /**< Object data. */ +} PACKED RDFFTripleChunk; /** Open/Create a new RDFF file. @@ -94,18 +86,19 @@ rdff_open(const char* path, bool write); RDFFStatus rdff_write_uri(RDFF file, uint32_t id, - const char* uri, - uint32_t len); + uint32_t len, + const char* uri); /** Write a key/value record to @a file. */ RDFFStatus -rdff_write_value(RDFF file, - uint32_t key, - const void* value, - uint32_t size, - uint32_t type); +rdff_write_triple(RDFF file, + uint32_t subject, + uint32_t predicate, + uint32_t object_type, + uint32_t object_size, + const void* object); /** Read a chunk from @a file. @@ -119,6 +112,18 @@ RDFFStatus rdff_read_chunk(RDFF file, RDFFChunk** buf); +/** + Return true iff @a chunk is a URI chunk. +*/ +bool +rdff_chunk_is_uri(RDFFChunk* chunk); + +/** + Return true iff @a chunk is a Triple chunk. +*/ +bool +rdff_chunk_is_triple(RDFFChunk* chunk); + /** Close @a file. After this call, @a file is invalid.