summaryrefslogtreecommitdiff
path: root/doc/reference
Commit message (Collapse)AuthorAgeFilesLines
* Move the reference build down one levelEmmanuele Bassi2017-03-1410-1027/+0
| | | | | There's no point in having the API reference in its own sub-directory: it's the only documentation we have.
* build: Ignore 'config.h' when building the API referenceEmmanuele Bassi2017-03-132-0/+3
| | | | It's an internal header.
* docs: Override version macrosEmmanuele Bassi2017-03-131-0/+14
| | | | | We don't need to show what they evaluate to, given that the value changes with every release.
* docs: Reference the JSON-GLib headerEmmanuele Bassi2017-03-131-0/+2
| | | | | The API reference should list the header that user code should include in order to use the API.
* docs: Add links to online resourcesEmmanuele Bassi2017-03-131-6/+18
| | | | | Link the built API reference on developer.gnome.org, and the JSON website.
* doc: Use package_versionEmmanuele Bassi2017-03-131-1/+1
| | | | | This is shared between the autotools and the Meson build, whereas package_api_version is Meson-only.
* Generate the man pages for json-glib tools in MesonEmmanuele Bassi2017-03-131-0/+32
| | | | | | A simple case of calling xsltproc with the right doctype. https://bugzilla.gnome.org/show_bug.cgi?id=773603
* Build API reference with MesonEmmanuele Bassi2017-03-134-4/+60
| | | | | | We can use the gnome module to generate the JSON-GLib API reference. https://bugzilla.gnome.org/show_bug.cgi?id=773603
* core: Add JSON node, object, array hashesPhilip Withnall2016-03-011-0/+11
| | | | | | | | | | | | | | | | | | | Now that these objects can be marked as immutable, it is possible to calculate and cache hash values for each of them. This allows efficient hash-based deduplication of large numbers of JSON nodes, as needed by Walbottle for JSON test vector generation. To complement the new hash functions, each of JsonNode, JsonValue, JsonObject and JsonArray also now have an equal() comparison method. This compares them structurally and recursively, using the definition of equality from the JSON Schema specification, which seems as good as any other. http://json-schema.org/latest/json-schema-core.html#anchor9 https://bugzilla.gnome.org/show_bug.cgi?id=756121 Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
* node: Add json_node_ref() and json_node_unref()Philip Withnall2016-03-011-0/+2
| | | | | | | | | | | | | | Add reference counting semantics to JsonNode, in addition to the existing init/unset and alloc/free semantics. json_node_free() must only be used with nodes allocated using json_node_alloc(). json_node_unref() may be used with all nodes (if correctly paired; it may be paired with json_node_alloc()). It is not valid to call json_node_free() on a node whose reference count is not 1. https://bugzilla.gnome.org/show_bug.cgi?id=756121
* core: Add immutability support to core objectsPhilip Withnall2016-03-011-0/+8
| | | | | | | | | | | Add an immutable mode to JsonNode, JsonObject, JsonArray and JsonValue. This is an optional mode which objects enter by calling json_*_seal(). It is a one-way transition, which means that we can build and manipulate objects as much as desired, before sealing them and enjoying the benefits of immutable objects: no need to take copies when handling them, persistent hash values (still to be implemented). https://bugzilla.gnome.org/show_bug.cgi?id=756121
* docs: Fix section titlePhilip Withnall2015-11-191-1/+1
|
* object: Add JsonObjectIter to ease iteration over JsonObject membersPhilip Withnall2015-10-061-0/+3
| | | | | | | | | | This is a stack-allocated iterator object similar to GHashTableIter which allows allocation-free iteration over the members in a JsonObject. It differs from json_object_foreach_member() in the order in which it iterates — for JsonObjectIter the order is undefined. https://bugzilla.gnome.org/show_bug.cgi?id=755509
* docs: Add 1.2 symbols indexEmmanuele Bassi2015-06-091-0/+5
|
* docs: Add missing symbolsEmmanuele Bassi2015-06-091-1/+5
|
* Add simple JSON/string utilitiesEmmanuele Bassi2015-06-092-0/+11
| | | | | Wrap JsonParser and JsonGenerator in simple, easy to call functions that manage the objects for you.
* build: Enable gtkdoc-checkEmmanuele Bassi2015-03-131-14/+10
| | | | | We can verify that the documentation is correct and up to date every time we distcheck by turning on the gtk-doc check tool.
* build: Clean up gtk-doc stanzasEmmanuele Bassi2015-03-132-40/+2
| | | | | | | | We need to ensure that gtk-doc looks into both the srcdir and the builddir in order to find all annotations. We also don't need to have the .types file under revision control: gtk-doc is perfectly capable of rebuilding it by itself.
* docs: Add missing symbol indicesEmmanuele Bassi2015-03-131-0/+10
|
* Reimplement JSON_VERSION_HEX as a macro callEmmanuele Bassi2014-03-181-0/+1
| | | | Add a JSON_ENCODE_VERSION macro and use it in JSON_VERSION_HEX.
* Use compiler annotations to determine symbol visibilityEmmanuele Bassi2014-03-181-0/+16
| | | | | | | | | | | | | | | | | Instead of relying on a separate file that requires being update every time we add a new public function we should use compiler annotations to let the linker know which symbols are public and exported. In order to achieve this we have to: * check for the visibility=hidden attribute * add -fvisibility=hidden to the linker flags * add a macro to annotate all public symbols While we're at it, we should copy the versioned symbols macro layout already used by GLib, GTK+, and other G* libraries, including the ability to express the range of allowed versions of JSON-GLib that third party code can compile against.
* docs: Drop the SGML modeEmmanuele Bassi2014-03-181-1/+1
| | | | The whole documentation is now MarkDown.
* build: Remove type init option for gtk-docEmmanuele Bassi2014-02-031-1/+1
| | | | | We're building against a required version of GLib that does not need type initialization.
* build: Clean up unnecessary complicationsEmmanuele Bassi2013-12-021-11/+0
| | | | | | | | We don't need a custom Makefile for quiet rules: AM_V_GEN is pretty much all we use anyway. The Makefile.am.gtest file is not included any longer, since we switched to TAP and GLib's own rules for unit testing.
* docs: Include tool man pages in the API referenceEmmanuele Bassi2013-10-281-1/+6
| | | | | The small utilities we ship should have their main pages included in the API reference, similarly to what GLib does.
* docs: Add infrastructure to build man pagesEmmanuele Bassi2013-10-273-3/+176
| | | | | The small utilities we build and install should have their own manual pages.
* build: Remove INCLUDESEmmanuele Bassi2013-05-161-1/+1
| | | | It has been replaced by AM_CPPFLAGS for a while.
* docs: Fix xinclude fallback for annotation glossaryEmmanuele Bassi2013-04-161-1/+1
|
* node: Add typed initializersEmmanuele Bassi2012-10-271-0/+9
| | | | | | | | | | | We should simplify the JsonNode API a bit, especially when it comes to initializing nodes. Instead of a two-step "new(<type>) followed by a set_<type>(value)" API, we can provide a "init_<type>(value)" API that can take any existing JsonNode and initialize it to the given type. This makes the JsonNode creation more concise and reliable; it also allows to implicitly re-initialize JsonNodes without requiring the user to de-allocate/re-allocate them first.
* docs: Add missing symbolsEmmanuele Bassi2012-06-301-0/+2
| | | | The deprecation macros should be in the private section.
* docs: Add index for symbols added in the 0.13 cycleEmmanuele Bassi2011-06-191-0/+5
|
* docs: Fix API reference missing symbolsEmmanuele Bassi2011-06-151-0/+4
|
* docs: Document JsonPath and add it to the API referenceEmmanuele Bassi2011-06-013-1/+23
|
* reader: Add accessor for the member nameEmmanuele Bassi2011-02-061-0/+1
| | | | This should allow easy access to the member name during iteration.
* reader: Add list_members() methodEmmanuele Bassi2011-02-041-0/+1
| | | | | Allow retrieving a list of member names from the current cursor position of the JsonReader. It's useful if you're trying to inspect a JSON tree.
* gvariant: Adds JSON GVariant integration API, with docs and testsEduardo Lima Mitev2011-01-262-0/+11
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=632940
* generator: Clean up and add accessorsEmmanuele Bassi2010-12-141-1/+10
| | | | | | | | Instead of asking everyone to use g_object_set() to set up a JsonGenerator the class should provide a decent API for its properties. While we're at it, we should also use modern API for installing and notifying of property changes.
* docs: Add 0.12 symbols index to the API referenceEmmanuele Bassi2010-08-141-0/+5
|
* reader: Do not wrap JsonParserEmmanuele Bassi2010-08-121-1/+1
| | | | | | | Since JsonParser has far more methods for parsing a JSON stream we should just make JsonReader an API for reading an already parsed JSON tree - in the same way that JsonBuilder does not generate the stringified version of the JSON tree it builds.
* reader: Mirror the JsonBuilder API value accessorsEmmanuele Bassi2010-08-121-5/+5
| | | | We should strive to make JsonBuilder and JsonReader similar in API.
* docs: Add JsonReader to the API referenceEmmanuele Bassi2010-08-123-0/+44
|
* generator: Add an OutputStream-based methodEmmanuele Bassi2010-08-021-0/+1
| | | | | | | Currently, only synchronous API. The output handling is pretty trivial, unlike the input handling in JsonParser; this is a really basic convenience API.
* docs: Add the new JsonParser stream APIEmmanuele Bassi2010-08-021-0/+3
|
* build: Use the GIO prefix for cross-referencesEmmanuele Bassi2010-08-021-1/+2
|
* docs: Add JsonBuilder to the API referenceEmmanuele Bassi2010-06-163-1/+36
| | | | | And silence gtk-doc-scanner by removing an undefined argument from json_builder_add_null_value().
* Ignore json-debug.hEmmanuele Bassi2010-04-141-1/+2
| | | | | The json-debug.h header is private and not installed; hence, it should be ignored by gtk-doc.
* docs: Add missing to/from_data methodsEmmanuele Bassi2009-11-291-0/+2
|
* boxed: Split (de)serialization registrationEmmanuele Bassi2009-11-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A GBoxed type defined as: struct Boxed { int foo; gboolean bar; int baz; }; Can be represented either by a JSON object: { "foo" : 1, "bar" : true, "baz" : 3 } Or by a JSON array: [ 1, true, 3 ] The current function for registering a serialization and a deserialization pair does not allow registering more than one deserialization function - which means that there can only be one way to deserialize a GBoxed type into a specific JsonNode type. To allow having more than one JsonNodeType associated to a GBoxed type and a deserialization function we need to split out the registration of the serialization and deserialization functions into two distinct functions.
* serializable: Add methods proxying default implementationsEmmanuele Bassi2009-11-121-0/+4
| | | | | | | | | | If you want to use the default implementation of serialize_property() and/or deserialize_property() from an object class implementing JsonSerializable you currently have to peek the interface vtable and then call the vfunc pointers. We can expose the default implementation through functions ourselves and simplify the required code.
* gobject: Uniform JSON<->GObject mapping codeEmmanuele Bassi2009-10-281-2/+2
| | | | | | | | | Rename json_gobject_new() to json_gobject_deserialize(), and json_gobject_dump() to json_gobject_serialize(); this maps the JSON GBoxed API. Also for consistency, change the serialize() return value and the deserialize() argument to be JsonNodes of type JSON_NODE_OBJECT.