[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r36847 - gnunet-dbus/src/lib/include
From: |
gnunet |
Subject: |
[GNUnet-SVN] r36847 - gnunet-dbus/src/lib/include |
Date: |
Tue, 19 Jan 2016 15:28:10 +0100 |
Author: canndrew
Date: 2016-01-19 15:28:09 +0100 (Tue, 19 Jan 2016)
New Revision: 36847
Modified:
gnunet-dbus/src/lib/include/gnunet_block_dbus_lib.h
gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_push.h
gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_push.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_arg.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_client.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_interface.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_message.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_method.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_method_context.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_object.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_object_path.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_push.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_service.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_signal.h
gnunet-dbus/src/lib/include/gnunet_dbus_lib_signature.h
gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib.h
gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_push.h
gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib.h
gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_push.h
gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_pop.h
gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_push.h
Log:
Add documentation to header files.
All types and functions defined in the header files under
src/lib/include now have documentation.
Modified: gnunet-dbus/src/lib/include/gnunet_block_dbus_lib.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_block_dbus_lib.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_block_dbus_lib.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -3,6 +3,11 @@
#include <gnunet_dbus_lib.h>
+/**
+ * A {NULL, 0}-terminated list of textual descriptions of `GNUNET_BLOCK_Type`
+ * enum variants. Used for converting back-and-forth between `GNUNET_DBUS_Type`
+ * and `const char *`
+ */
extern const struct GNUNET_DBUS_StringEnumPair
GNUNET_BLOCK_DBUS_type_description[];
#include "gnunet_block_dbus_lib_pop.h"
Modified: gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_pop.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_pop.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -8,6 +8,11 @@
#include "gnunet_dbus_lib_method_context.h"
+/**
+ * Pop a GNUNET_DBUS_Type off of a DBusMessage, moving the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_BLOCK_DBUS_pop_type (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_push.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_block_dbus_lib_push.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,6 +3,9 @@
#include "gnunet_block_dbus_lib.h"
+/**
+ * Push a GNUNET_BLOCK_Type onto a DBusMessage, advancing the iterator.
+ */
void
GNUNET_BLOCK_DBUS_push_type (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_pop.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_pop.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -5,6 +5,11 @@
#include <gnunet/gnunet_common.h>
#include <gnunet/gnunet_crypto_lib.h>
+/**
+ * Pop a GNUNET_CRYPT_EcdsaPublicKey off of a DBusMessage, moving the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_CRYPTO_DBUS_pop_ecdsa_public_key (
DBusMessage *message,
@@ -12,6 +17,11 @@
const char *arg_name,
struct GNUNET_CRYPTO_EcdsaPublicKey *value);
+/**
+ * Pop a GNUNET_CRYPTO_EddsaPublicKey off a DBusMessage, moving the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_CRYPTO_DBUS_pop_eddsa_public_key (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_push.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_crypto_dbus_lib_push.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -5,6 +5,9 @@
#include <gnunet/gnunet_common.h>
#include <gnunet/gnunet_crypto_lib.h>
+/**
+ * Push a GNUNET_CRYPTO_EcdsaPublicKey onto a DBusMessage, advancing the
iterator.
+ */
void
GNUNET_CRYPTO_DBUS_push_ecdsa_public_key (
DBusMessage *message,
@@ -11,6 +14,9 @@
DBusMessageIter *iter,
const struct GNUNET_CRYPTO_EcdsaPublicKey *value);
+/**
+ * Push a GNUNET_CRYPTO_EddsaPublicKey onto a DBusMessage, advancing the
iterator.
+ */
void
GNUNET_CRYPTO_DBUS_push_eddsa_public_key (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -1,6 +1,11 @@
#ifndef GNUNET_DBUS_LIB_H
#define GNUNET_DBUS_LIB_H
+/**
+ * Used to assign a textual description to an enum variant.
+ * eg. {"dht_hello", GNUNET_BLOCK_TYPE_DHT_HELLO}.
+ * Generally stored in an array, terminated by {NULL, 0}.
+ */
struct GNUNET_DBUS_StringEnumPair {
const char *name;
const int value;
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_arg.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_arg.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_arg.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -1,8 +1,15 @@
#ifndef GNUNET_DBUS_LIB_ARG_H
#define GNUNET_DBUS_LIB_ARG_H
+/**
+ * Used to represent an argument to a DBus method or signal. An argument
+ * consists of a name and a DBus type signature.
+ */
struct GNUNET_DBUS_Arg;
+/**
+ * An iterable, doubly-linked-list of GNUNET_DBUS_Arg.
+ */
struct GNUNET_DBUS_ArgIterator
{
/* linked list */
@@ -12,23 +19,40 @@
struct GNUNET_DBUS_Arg *arg;
};
+/**
+ * Create a GNUNET_DBUS_Arg with the given name, DBus type signature and a
+ * reference count of one.
+ */
struct GNUNET_DBUS_Arg *
GNUNET_DBUS_arg_create (
const char *name,
const char *signature);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Arg by one.
+ */
void
GNUNET_DBUS_arg_ref (
struct GNUNET_DBUS_Arg *arg);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Arg by one. Will free the
+ * GNNET_DBUS_Arg if the reference count reaches zero.
+ */
void
GNUNET_DBUS_arg_unref (
struct GNUNET_DBUS_Arg *arg);
+/**
+ * Get the name of this GNUNET_DBUS_Arg.
+ */
const char *
GNUNET_DBUS_arg_get_name (
const struct GNUNET_DBUS_Arg *arg);
+/**
+ * Get the DBus type signature of this GNUNET_DBUS_Arg.
+ */
const char *
GNUNET_DBUS_arg_get_signature (
const struct GNUNET_DBUS_Arg *arg);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_client.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_client.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_client.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,8 +3,15 @@
#include <stdbool.h>
+/**
+ * Used by services to keep track of connected clients. Can associate an
+ * arbitrary piece of data with each client.
+ */
struct GNUNET_DBUS_Client;
+/**
+ * An iterable, double-linked-list of GNUNET_DBUS_Client
+ */
struct GNUNET_DBUS_ClientIterator
{
struct GNUNET_DBUS_ClientIterator *next;
@@ -13,36 +20,66 @@
struct GNUNET_DBUS_Client *client;
};
+/**
+ * Create a GNUNET_DBUS_Client with the given DBus unique name (eg. "1:23").
+ */
struct GNUNET_DBUS_Client *
GNUNET_DBUS_client_create (
const char *unique_name);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Client by one.
+ */
void
GNUNET_DBUS_client_ref (
struct GNUNET_DBUS_Client *client);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Client by one. Will free
+ * the GNUNET_DBUS_Client if the reference count reaches zero.
+ */
void
GNUNET_DBUS_client_unref (
struct GNUNET_DBUS_Client *client);
+/*
+ * Get the DBus unique name of this client (eg. "1:23").
+ */
const char *
GNUNET_DBUS_client_get_unique_name (
const struct GNUNET_DBUS_Client *client);
+/**
+ * Set the arbitrary piece of data associated with the client.
+ */
void
GNUNET_DBUS_client_set_data (
struct GNUNET_DBUS_Client *client,
void *data);
+/**
+ * Get the arbitrary piece of data associated with the client.
+ */
void *
GNUNET_DBUS_client_get_data (
const struct GNUNET_DBUS_Client *client);
-
+/**
+ * Set whether this client prefers data to be pretty-encoded for transmission
+ * over DBus. For example, the enum variant GNUNET_BLOCK_TYPE_DHT_HELLO will be
+ * sent over-the-wire to this client as a DBus uint32 or as a the DBus string
+ * "dht_hello" depending on this flag.
+ */
void
GNUNET_DBUS_client_set_prefers_pretty_encodings (
struct GNUNET_DBUS_Client *client,
bool prefers_pretty_encodings);
+/**
+ * Get whether this client prefers data to be pretty-encoded for transmission
+ * over DBus. For example, the enum variant GNUNET_BLOCK_TYPE_DHT_HELLO will be
+ * sent over-the-wire to this client as a DBus uint32 or as a the DBus string
+ * "dht_hello" depending on this flag.
+ */
bool
GNUNET_DBUS_client_get_prefers_pretty_encodings (
const struct GNUNET_DBUS_Client *client);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_interface.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_interface.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_interface.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,6 +3,10 @@
#include <stdbool.h>
+/**
+ * Represents a DBus interface. An interface consists of a set of methods and
+ * signals.
+ */
struct GNUNET_DBUS_Interface;
#include "gnunet_dbus_lib_object.h"
@@ -19,43 +23,78 @@
struct GNUNET_DBUS_Interface *interface;
};
+/**
+ * Create a DBus interface with the given name. After populating this interface
+ * with methods and signals it can be added to an object with
+ * GNUNET_DBUS_object_add_interface.
+ */
struct GNUNET_DBUS_Interface *
GNUNET_DBUS_interface_create (
const char *name);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Interface by one.
+ */
void
GNUNET_DBUS_interface_ref (
struct GNUNET_DBUS_Interface *interface);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Interface by one.
+ */
void
GNUNET_DBUS_interface_unref (
struct GNUNET_DBUS_Interface *interface);
+/**
+ * Add a method to this interface. This will increase the reference count of
+ * the GNUNET_DBUS_Method by one.
+ */
void
GNUNET_DBUS_interface_add_method (
struct GNUNET_DBUS_Interface *interface,
struct GNUNET_DBUS_Method *method);
+/**
+ * Add a signal to this interface. This will increase the reference count of
+ * the GNUNET_DBUS_Signal by one.
+ */
void
GNUNET_DBUS_interface_add_signal (
struct GNUNET_DBUS_Interface *interface,
struct GNUNET_DBUS_Signal *signal);
+/**
+ * Get the name of this GNUNET_DBUS_Interface.
+ */
const char *
GNUNET_DBUS_interface_get_name (
const struct GNUNET_DBUS_Interface *interface);
+/**
+ * Iterate over the methods of this GNUNET_DBUS_Interface.
+ */
const struct GNUNET_DBUS_MethodIterator *
GNUNET_DBUS_interface_iterate_methods (
const struct GNUNET_DBUS_Interface *interface);
+/**
+ * Iterate over the signals of this GNUNET_DBUS_Interface.
+ */
const struct GNUNET_DBUS_SignalIterator *
GNUNET_DBUS_interface_iterate_signals (
const struct GNUNET_DBUS_Interface *interface);
+/**
+ * Returns the org.freedesktop.DBus.Introspectable interface.
+ */
struct GNUNET_DBUS_Interface *
GNUNET_DBUS_interface_introspectable ();
+/**
+ * Return the position in the given linked-list of the GNUNET_DBUS_Interface
+ * with the given name. Returns NULL if the interface could not be found.
+ */
const struct GNUNET_DBUS_InterfaceIterator *
GNUNET_DBUS_interface_find (
const struct GNUNET_DBUS_InterfaceIterator *int_it,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_message.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_message.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_message.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -6,20 +6,37 @@
#include "gnunet_dbus_lib_client.h"
+/**
+ * Get the value of this message's pretty-encoding flag. This flag controls
+ * whether data pushed to the message will be pretty-encoded for transmission
+ * over DBus.
+ */
bool
GNUNET_DBUS_message_get_pretty (
DBusMessage *message);
+/**
+ * Set the value of this message's pretty-encoding flag. This flag controls
+ * whether data pushed to the message will be pretty-encoded for transmission
+ * over DBus.
+ */
void
GNUNET_DBUS_message_set_pretty (
DBusMessage *message,
bool pretty);
+/**
+ * Set the destination of this message to the DBus address of the
+ * GNUNET_DBUS_Client.
+ */
void
GNUNET_DBUS_message_set_destination (
DBusMessage *message,
struct GNUNET_DBUS_Client *client);
+/**
+ * Set the destination of this message to NULL.
+ */
void
GNUNET_DBUS_message_unset_destination (
DBusMessage *message);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_method.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_method.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_method.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,11 +3,18 @@
#include <stdbool.h>
+/**
+ * Represents a DBus method. Consists of a linked-list of args and return args
+ * of type GNUNET_DBUS_Arg.
+ */
struct GNUNET_DBUS_Method;
#include "gnunet_dbus_lib_object.h"
#include "gnunet_dbus_lib_method_context.h"
+/**
+ * An iterable, double-linked list of GNUNET_DBUS_Method.
+ */
struct GNUNET_DBUS_MethodIterator
{
/* linked list */
@@ -17,19 +24,35 @@
struct GNUNET_DBUS_Method *method;
};
+/**
+ * Create a new GNUNET_DBUS_Method with the given name. The underlying_method
+ * function will be called whenever this method is called via DBus. After
+ * creating a method you need to populate it the args and return args before
+ * binding it to an interface with GNUNET_DBUS_interface_add_method.
+ */
struct GNUNET_DBUS_Method *
GNUNET_DBUS_method_create (
const char *name,
void (*underlying_method)(struct GNUNET_DBUS_MethodContext *mc));
+/**
+ * Increase the reference count of this GNUNET_DBUS_Method by one.
+ */
void
GNUNET_DBUS_method_ref (
struct GNUNET_DBUS_Method *method);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Method by one. Will free
+ * the method if the reference count reaches zero.
+ */
void
GNUNET_DBUS_method_unref (
struct GNUNET_DBUS_Method *method);
+/**
+ * Add an argument with the given name and type signature to this method.
+ */
void
GNUNET_DBUS_method_add_arg (
struct GNUNET_DBUS_Method *method,
@@ -36,6 +59,9 @@
const char *name,
const char *signature);
+/**
+ * Add a return argument with the given name and type signature to this method.
+ */
void
GNUNET_DBUS_method_add_return_arg (
struct GNUNET_DBUS_Method *method,
@@ -42,23 +68,39 @@
const char *name,
const char *signature);
+/**
+ * Get the name of this method.
+ */
const char *
GNUNET_DBUS_method_get_name (
const struct GNUNET_DBUS_Method *method);
+/**
+ * Iterate over the arguments of this GNUNET_DBUS_Method.
+ */
const struct GNUNET_DBUS_ArgIterator *
GNUNET_DBUS_method_iterate_args (
const struct GNUNET_DBUS_Method *method);
-
+/*
+ * Iterate over the return arguments of this GNUNET_DBUS_Method.
+ */
const struct GNUNET_DBUS_ArgIterator *
GNUNET_DBUS_method_iterate_return_args (
const struct GNUNET_DBUS_Method *method);
+/**
+ * Call this method with the supplied GNUNET_DBUS_MethodContext.
+ */
void
GNUNET_DBUS_method_call (
struct GNUNET_DBUS_Method *method,
struct GNUNET_DBUS_MethodContext *mc);
+/**
+ * Find a GNUNET_DBUS_Method with the given name in the supplied iterator.
+ * Returns the position in the iterator of the method or NULL if it could not
+ * be found.
+ */
const struct GNUNET_DBUS_MethodIterator *
GNUNET_DBUS_method_find (
const struct GNUNET_DBUS_MethodIterator *meth_it,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_method_context.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_method_context.h
2016-01-19 13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_method_context.h
2016-01-19 14:28:09 UTC (rev 36847)
@@ -5,19 +5,70 @@
#include <dbus/dbus.h>
+/**
+ * An object of this type is passed to every function bound to a
+ * GNUNET_DBUS_Method when it is called via DBus.
+ */
struct GNUNET_DBUS_MethodContext
{
+ /**
+ * The client calling this method.
+ */
struct GNUNET_DBUS_Client *client;
+
+ /**
+ * The service that this method was called on. This is necessary as the
+ * process might be running several DBus services all advertising the same
+ * method.
+ */
struct GNUNET_DBUS_Service *service;
+
+ /**
+ * The object that this method was called on.
+ */
struct GNUNET_DBUS_Object *object;
+
+ /**
+ * The interface that this method was called on.
+ */
struct GNUNET_DBUS_Interface *interface;
+
+ /**
+ * The method that was called. Necessary because multiple DBus methods may be
+ * bound to a single internal function.
+ */
struct GNUNET_DBUS_Method *method;
+
+ /**
+ * The method-call message sent by the client.
+ */
DBusMessage *message;
+
+ /**
+ * Whether the client expects a reply to this message. If the user of this
+ * API tries to send a reply to the client via this
+ * GNUNET_DBUS_MethodContext, the reply will not be sent if this flag is
+ * unset.
+ */
bool expects_reply;
+
+ /**
+ * Whether we have already replied to this DBus method-call message.
+ */
bool replied;
+
+ /**
+ * The reference count of the GNUNET_DBUS_MethodContext.
+ */
unsigned ref_count;
};
+/**
+ * Create a GNUNET_DBUS_MethodContext from the supplied DBus method-call
+ * message. The message must have been sent by the given client to the given
+ * service+object+interface+method. This will increase the reference count of
+ * the DBusMessage but not the other supplied objects.
+ */
struct GNUNET_DBUS_MethodContext *
GNUNET_DBUS_method_context_create (
struct GNUNET_DBUS_Client *client,
@@ -26,20 +77,36 @@
struct GNUNET_DBUS_Interface *interface,
struct GNUNET_DBUS_Method *method,
DBusMessage *message);
-
+
+/**
+ * Increase the reference count of this GNUNET_DBUS_MethodContext by one.
+ */
void
GNUNET_DBUS_method_context_ref (
struct GNUNET_DBUS_MethodContext *mc);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_MethodContext by one. Will
+ * free the method context if the reference count reaches zero.
+ */
void
GNUNET_DBUS_method_context_unref (
struct GNUNET_DBUS_MethodContext *mc);
+/**
+ * Send a DBusMessage in reply to the method call associated with this method
+ * context. The DBusMessage should have been created using
+ * GNUNET_DBUS_method_context_create_reply.
+ */
void
GNUNET_DBUS_method_context_send_reply (
struct GNUNET_DBUS_MethodContext *mc,
DBusMessage *reply);
+/**
+ * Create a DBusMessage in reply to this method call. After populating the
+ * message with data, send it using GNUNET_DBUS_method_context_send_reply.
+ */
DBusMessage *
GNUNET_DBUS_method_context_create_reply (
struct GNUNET_DBUS_MethodContext *mc);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_object.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_object.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_object.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -1,10 +1,21 @@
#ifndef GNUNET_DBUS_LIB_OBJECT_H
#define GNUNET_DBUS_LIB_OBJECT_H
+/**
+ * Represents a DBus object advertised on a DBus service. Objects are named and
+ * exist in a tree. For example, the object at the path
+ * /org/freedesktop/PolicyKit1/Authority is named Authority and sits in a
+ * heirarchy below four other objects including the service's root object. Each
+ * object has a set of interfaces and can be associated with an arbitrary piece
+ * of data.
+ */
struct GNUNET_DBUS_Object;
#include "gnunet_dbus_lib_interface.h"
+/**
+ * An iterable, doubly-linked-list of GNUNET_DBUS_Object.
+ */
struct GNUNET_DBUS_ObjectIterator
{
/* linked list */
@@ -14,55 +25,97 @@
struct GNUNET_DBUS_Object *object;
};
+/**
+ * Create a new GNUNET_DBUS_Object with the given name and associated data. For
+ * example, the object that exists at the path
+ * /org/freedesktop/PolicyKit1/Authority has the name Authority and sits below
+ * four other objects including the service's root object.
+ */
struct GNUNET_DBUS_Object *
GNUNET_DBUS_object_create (
const char *name,
void *data);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Object by one.
+ */
void
GNUNET_DBUS_object_ref (
struct GNUNET_DBUS_Object *object);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Object by one. Will free
+ * the GNUNET_DBUS_Object if the reference count reaches zero.
+ */
void
GNUNET_DBUS_object_unref (
struct GNUNET_DBUS_Object *object);
+/**
+ * Get the name of this GNUNET_DBUS_Object.
+ */
const char *
GNUNET_DBUS_object_get_name (
const struct GNUNET_DBUS_Object *object);
+/**
+ * Add an interface to this GNUNET_DBUS_Object.
+ */
void
GNUNET_DBUS_object_add_interface (
struct GNUNET_DBUS_Object *object,
struct GNUNET_DBUS_Interface *interface);
+/**
+ * Iterate over the interfaces of this GNUNET_DBUS_Object.
+ */
const struct GNUNET_DBUS_InterfaceIterator *
GNUNET_DBUS_object_iterate_interfaces (
struct GNUNET_DBUS_Object *object);
+/**
+ * Get the data associated with this GNUNET_DBUS_Object.
+ */
void *
GNUNET_DBUS_object_get_data (
struct GNUNET_DBUS_Object *object);
+/**
+ * Create an object with a randomly generated name, associate data with it, and
+ * add it as a child to the given object. Returns the newly created object.
+ */
struct GNUNET_DBUS_Object *
GNUNET_DBUS_object_create_uniquely_named_subobject (
struct GNUNET_DBUS_Object *object,
void *data);
+/**
+ * Add subobject as a child of object.
+ */
void
GNUNET_DBUS_object_add_subobject (
struct GNUNET_DBUS_Object *object,
struct GNUNET_DBUS_Object *subobject);
+/**
+ * Remove the object pointed to by subobject_it as a child from object.
+ */
void
GNUNET_DBUS_object_remove_subobject (
struct GNUNET_DBUS_Object *object,
struct GNUNET_DBUS_ObjectIterator *subobject_it);
+/**
+ * Iterate over an object's child objects.
+ */
struct GNUNET_DBUS_ObjectIterator *
GNUNET_DBUS_object_iterate_subobjects (
const struct GNUNET_DBUS_Object *object);
+/**
+ * Search the given linked list of GNUNET_DBUS_Object for an object with the
+ * given name and return an iterator to it.
+ */
const struct GNUNET_DBUS_ObjectIterator *
GNUNET_DBUS_object_find (
const struct GNUNET_DBUS_ObjectIterator *object_it,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_object_path.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_object_path.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_object_path.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,8 +3,25 @@
#include "gnunet_dbus_lib_object.h"
+/**
+ * Represents a path of DBus objects in service's object namespace. eg.
+ * /org/freedesktop/PolicyKit1/Authority
+ */
struct GNUNET_DBUS_ObjectPath;
+/**
+ * Create an object path from a GNUNET_DBUS_Service and a list of
+ * GNUNET_DBUS_Object. The last item in the list must be NULL.
+ * For example, to create the path to the
+ * /org/freedesktop/PolicyKit1/Authority1 object you would call as:
+ *
+ * GNUNET_DBUS_object_path_create(policy_kit_service_object,
+ * org_object,
+ * freedesktop_object,
+ * PolicyKit1_object,
+ * Authority_object,
+ * NULL);
+ */
struct GNUNET_DBUS_ObjectPath *
GNUNET_DBUS_object_path_create (
struct GNUNET_DBUS_Service *service,
@@ -11,18 +28,32 @@
...)
__attribute__((sentinel));
+/**
+ * Increase the reference count of this GNUNET_DBUS_ObjectPath by one.
+ */
void
GNUNET_DBUS_object_path_ref (
struct GNUNET_DBUS_ObjectPath *path);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_ObjectPath by one. Will
+ * free the GNUNET_DBUS_ObjectPath if the reference count reaches zero.
+ */
void
GNUNET_DBUS_object_path_unref (
struct GNUNET_DBUS_ObjectPath *path);
+/**
+ * Format the GNUNET_DBUS_ObjectPath as a string. eg.
+ * "/org/freedesktop/PolicyKit1/Authority1".
+ */
char *
GNUNET_DBUS_object_path_to_string (
const struct GNUNET_DBUS_ObjectPath *path);
+/**
+ * Get the destination object of this path. ie. the final object in the path.
+ */
struct GNUNET_DBUS_Object *
GNUNET_DBUS_object_path_get_destination (
const struct GNUNET_DBUS_ObjectPath *path);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_pop.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_pop.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -1,6 +1,11 @@
#ifndef GNUNET_DBUS_LIB_POP_H
#define GNUNET_DBUS_LIB_POP_H
+/**
+ * Pop a byte from a DBus message, advancing the iterator. `arg_name` is used
+ * for reporting useful diagnostics if the value in the message is missing or
+ * the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_byte (
DBusMessage *message,
@@ -8,6 +13,11 @@
const char *arg_name,
unsigned char *value);
+/**
+ * Pop a boolean from a DBus message, advancing the iterator. `arg_name` is
+ * used for reporting useful diagnostics if the value in the message is missing
+ * or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_boolean (
DBusMessage *message,
@@ -15,6 +25,11 @@
const char *arg_name,
dbus_bool_t *value);
+/**
+ * Pop an int16 from a DBus message, advancing the iterator. `arg_name` is used
+ * for reporting useful diagnostics if the value in the message is missing or
+ * the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int16 (
DBusMessage *message,
@@ -22,6 +37,11 @@
const char *arg_name,
dbus_int16_t *value);
+/**
+ * Pop a uint16 from a DBus message, advancing the iterator. `arg_name` is used
+ * for reporting useful diagnostics if the value in the message is missing or
+ * the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint16 (
DBusMessage *message,
@@ -29,6 +49,11 @@
const char *arg_name,
dbus_uint16_t *value);
+/**
+ * Pop an int32 from a DBus message, advancing the iterator. `arg_name` is
+ * used for reporting useful diagnostics if the value in the message is missing
+ * or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int32 (
DBusMessage *message,
@@ -36,6 +61,11 @@
const char *arg_name,
dbus_int32_t *value);
+/**
+ * Pop a uint32 from a DBus message, advancing the iterator. `arg_name` is
+ * used for reporting useful diagnostics if the value in the message is missing
+ * or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint32 (
DBusMessage *message,
@@ -43,6 +73,11 @@
const char *arg_name,
dbus_uint32_t *value);
+/**
+ * Pop an int64 from a DBus message, advancing the iterator. `arg_name` is
+ * used for reporting useful diagnostics if the value in the message is missing
+ * or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int64 (
DBusMessage *message,
@@ -50,6 +85,11 @@
const char *arg_name,
dbus_int64_t *value);
+/**
+ * Pop a uint64 from a DBus message, advancing the iterator. `arg_name` is
+ * used for reporting useful diagnostics if the value in the message is missing
+ * or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint64 (
DBusMessage *message,
@@ -57,6 +97,11 @@
const char *arg_name,
dbus_uint64_t *value);
+/**
+ * Pop a double from a DBus message, advancing the iterator. `arg_name` is used
+ * for reporting useful diagnostics if the value in the message is missing or
+ * the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_double (
DBusMessage *message,
@@ -64,6 +109,11 @@
const char *arg_name,
double *value);
+/**
+ * Pop a string from a DBus message, advancing the iterator. `arg_name` is used
+ * for reporting useful diagnostics if the value in the message is missing or
+ * the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_string (
DBusMessage *message,
@@ -71,6 +121,12 @@
const char *arg_name,
const char **value);
+/**
+ * Pop a DBus object path from a DBus message, advancing the iterator. The
+ * object path is returned in *value as a string. `arg_name` is used for
+ * reporting useful diagnostics if the value in the message is missing or the
+ * wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_object_path (
DBusMessage *message,
@@ -78,6 +134,12 @@
const char *arg_name,
const char **value);
+/**
+ * Pop a DBus type signature from a DBusMessage, advancing the iterator. The
+ * type signature is returned in *value as a string. `arg_name` is used for
+ * reporting useful diagnostics if the value in the message is missing or the
+ * wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_signature (
DBusMessage *message,
@@ -85,6 +147,11 @@
const char *arg_name,
const char **value);
+/**
+ * Pop a unix file descriptor from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_unix_fd (
DBusMessage *message,
@@ -92,6 +159,12 @@
const char *arg_name,
int *value);
+/**
+ * Pop an array from a DBusMessage. Moves iter past the array and initialises
+ * iter_sub to point to the first element of the array. The length of the array
+ * is returned in *len. `arg_name` is used for reporting useful diagnostics if
+ * the value in the message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_enter_array (
DBusMessage *message,
@@ -100,6 +173,12 @@
const char *arg_name,
size_t *len);
+/**
+ * Pop a struct from a DBusMessage. Moves iter past the struct and initialises
+ * iter_sub to point to the first element of the struct. `arg_name` is used for
+ * reporting useful diagnostics if the value in the message is missing or the
+ * wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_enter_struct (
DBusMessage *message,
@@ -107,6 +186,12 @@
DBusMessageIter *iter_sub,
const char *arg_name);
+/**
+ * Pop a variant from a DBusMessage. Moves iter past the variant and
+ * initialises iter_sub to point to the value inside the variant. `arg_name`
+ * is used for reporting useful diagnostics if the value in the message is
+ * missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_enter_variant (
DBusMessage *message,
@@ -114,6 +199,12 @@
DBusMessageIter *iter_sub,
const char *arg_name);
+/**
+ * Pop a dictionary entry from a DBusMessage. Moves iter past the dictionary
+ * entry and initialises iter_sub to point to the key. The key and value can
+ * then be popped in sequence using iter_sub. `arg_name` is used for reporting
+ * useful diagnostics if the value in the message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_enter_dict_entry (
DBusMessage *message,
@@ -121,6 +212,13 @@
DBusMessageIter *iter_sub,
const char *arg_name);
+/**
+ * Pop an array of bytes from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_byte_array (
DBusMessage *message,
@@ -129,6 +227,13 @@
const unsigned char **value,
int *n_elements);
+/**
+ * Pop an array of booleans from a DBusMessage. A pointer to the array is
+ * stored in *value. The array is not copied so *value will become invalid once
+ * the message has been freed. The length of the array is stored in
+ * *n_elements. `arg_name` is used for reporting useful diagnostics if the
+ * value in the message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_boolean_array (
DBusMessage *message,
@@ -137,6 +242,13 @@
const dbus_bool_t **value,
int *n_elements);
+/**
+ * Pop an array of int16s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int16_array (
DBusMessage *message,
@@ -145,6 +257,13 @@
const int16_t **value,
int *n_elements);
+/**
+ * Pop an array of uint16s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint16_array (
DBusMessage *message,
@@ -153,6 +272,13 @@
const uint16_t **value,
int *n_elements);
+/**
+ * Pop an array of int32s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int32_array (
DBusMessage *message,
@@ -161,6 +287,13 @@
const int32_t **value,
int *n_elements);
+/**
+ * Pop an array of uint32s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint32_array (
DBusMessage *message,
@@ -169,6 +302,13 @@
const uint32_t **value,
int *n_elements);
+/**
+ * Pop an array of int64s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_int64_array (
DBusMessage *message,
@@ -177,6 +317,13 @@
const int64_t **value,
int *n_elements);
+/**
+ * Pop an array of uint64s from a DBusMessage. A pointer to the array is stored
+ * in *value. The array is not copied so *value will become invalid once the
+ * message has been freed. The length of the array is stored in *n_elements.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_uint64_array (
DBusMessage *message,
@@ -186,11 +333,25 @@
int *n_elements);
/*
- * bitfield enums can be sent across the wire in either their integer form (as
- * an array of bit flags) or as an array of strings. Sending an int is more
- * efficient and is what libraries built around the DBus API would use, people
- * using the DBus API directly may want to pass human-readable strings for
- * convenience.
+ * Pop a bitfield enum from a DBusMessage, advancing the iterator. A bitfield
+ * enum is an enum where the individual bits represent different flags. See for
+ * example the definition of GNUNET_GNSRECORD_Flags:
+ *
+ * enum GNUNET_GNSRECORD_Flags {
+ * GNUNET_GNSRECORD_RF_PRIVATE = 2,
+ * // GNUNET_GNSRECORD_RF_UNUSED = 4,
+ * GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION = 8,
+ * GNUNET_GNSRECORD_RF_SHADOW_RECORD = 16
+ * }
+ *
+ * Bitfield enums can be sent across the wire in either their integer form (as
+ * a uint32) or as an array of strings. Sending an int is more efficient and is
+ * what libraries built around the DBus API would use. People using the DBus
+ * API directly via the command line or a DBus debugger may want to pass
+ * human-readable strings for convenience. names is a pointer to a
+ * {NULL, 0}-terminated array of GNUNET_DBUS_StringEnumPair which assigns
+ * human-readable names to the bitfields. `arg_name` is used for reporting
+ * useful diagnostics if the value in the message is missing or the wrong type.
*/
DBusMessage *
GNUNET_DBUS_pop_bitfield (
@@ -200,6 +361,17 @@
int *value,
const struct GNUNET_DBUS_StringEnumPair *fields);
+/**
+ * Pop an enum from a DBusMessage, advancing the iterator. enums can be sent
+ * across the wire as either a uint32 or as a string. Sending a uint32 is more
+ * efficient and is what libraries built around the DBus API would use. People
+ * using the DBus API directly via the command line or a DBus debugger may want
+ * to pass human-readable strings for convenience. names is a pointer to a
+ * {NULL, 0}-terminated array of GNUNET_DBUS_StringEnumPair which assigns
+ * human-readable names to the different enum variants. `arg_name` is used for
+ * reporting useful diagnostics if the value in the message is missing or the
+ * wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_enum (
DBusMessage *message,
@@ -208,6 +380,11 @@
int *value,
const struct GNUNET_DBUS_StringEnumPair *names);
+/**
+ * Pop a GNUNET_HashCode from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_hashcode (
DBusMessage *message,
@@ -215,6 +392,11 @@
const char *arg_name,
struct GNUNET_HashCode *value);
+/**
+ * Pop a GNUNET_PeerIdentity from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DBUS_pop_peer_identity (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_push.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_push.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -6,6 +6,9 @@
#include <gnunet/gnunet_common.h>
#include <gnunet/gnunet_crypto_lib.h>
+/**
+ * Push a byte to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_byte (
DBusMessage *message,
@@ -12,6 +15,9 @@
DBusMessageIter *iter,
const unsigned char *value);
+/**
+ * Push a boolean to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_boolean (
DBusMessage *message,
@@ -18,6 +24,9 @@
DBusMessageIter *iter,
const dbus_bool_t *value);
+/**
+ * Push an int16 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_int16 (
DBusMessage *message,
@@ -24,6 +33,9 @@
DBusMessageIter *iter,
const dbus_int16_t *value);
+/**
+ * Push a uint16 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_uint16 (
DBusMessage *message,
@@ -30,6 +42,9 @@
DBusMessageIter *iter,
const dbus_uint16_t *value);
+/**
+ * Push an int32 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_int32 (
DBusMessage *message,
@@ -36,6 +51,9 @@
DBusMessageIter *iter,
const dbus_int32_t *value);
+/**
+ * Push a uint32 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_uint32 (
DBusMessage *message,
@@ -42,6 +60,9 @@
DBusMessageIter *iter,
const dbus_uint32_t *value);
+/**
+ * Push an int64 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_int64 (
DBusMessage *message,
@@ -48,6 +69,9 @@
DBusMessageIter *iter,
const dbus_int64_t *value);
+/**
+ * Push a uint64 to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_uint64 (
DBusMessage *message,
@@ -54,6 +78,9 @@
DBusMessageIter *iter,
const dbus_uint64_t *value);
+/**
+ * Push a double to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_double (
DBusMessage *message,
@@ -60,6 +87,9 @@
DBusMessageIter *iter,
const double *value);
+/**
+ * Push a string to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_string (
DBusMessage *message,
@@ -66,6 +96,9 @@
DBusMessageIter *iter,
const char *const *value);
+/**
+ * Push an object path to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_object_path (
DBusMessage *message,
@@ -72,6 +105,9 @@
DBusMessageIter *iter,
const struct GNUNET_DBUS_ObjectPath *path);
+/**
+ * Push a DBus type signature to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_signature (
DBusMessage *message,
@@ -78,6 +114,9 @@
DBusMessageIter *iter,
const char *const *value);
+/**
+ * Push a unix file descriptor to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_unix_fd (
DBusMessage *message,
@@ -84,6 +123,9 @@
DBusMessageIter *iter,
const int *value);
+/**
+ * Push a unix file descriptor to a DBus message, advancing the iterator.
+ */
void
GNUNET_DBUS_push_open_array (
DBusMessage *message,
@@ -91,6 +133,12 @@
DBusMessageIter *iter_sub,
const char *signature);
+/**
+ * Commence pushing an array to a DBusMessage. iter_sub is initialised to point
+ * to the start of a new array and can be used to populate the array.
+ * GNUNET_DBUS_push_close_array must be called after the array has been
+ * populated. iter is invalid until GNUNET_DBUS_push_close_array has been
called.
+ */
void
GNUNET_DBUS_push_open_struct (
DBusMessage *message,
@@ -97,6 +145,12 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Commence pushing a variant to a DBusMessage. iter_sub is initialised to
+ * point to an empty variant and must be used to place the value in the
+ * variant. After the value is placed, GNUNET_DBUS_push_close_variant must be
+ * called. iter is invalid until GNUNET_DBUS_push_close_array has been called.
+ */
void
GNUNET_DBUS_push_open_variant (
DBusMessage *message,
@@ -104,6 +158,13 @@
DBusMessageIter *iter_sub,
const char *signature);
+/**
+ * Commence pushing a dictionary entry onto a DBusMessage. iter_sub is
+ * initialised to point to the start of the new dictionary entry. It must be
+ * used to push the key and value in order after which
+ * GNUNET_DBUS_push_close_dict_entry must be called. iter is invalid until
+ * GNUNET_DBUS_push_close_array has been called.
+ */
void
GNUNET_DBUS_push_open_dict_entry (
DBusMessage *message,
@@ -110,6 +171,12 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Finish pushing an array to a DBusMesage. This must be called after
+ * GNUNET_DBUS_push_open_array and after the array elements have been pushed to
+ * the message. After calling this function, iter_sub becomes invalid and iter
+ * can again be used to push data to the message.
+ */
void
GNUNET_DBUS_push_close_array (
DBusMessage *message,
@@ -116,6 +183,13 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Finish pushing a struct to a DBusMessage. This must be called after
+ * GNUNET_DBUS_push_open_struct and after the struct members have been pushed
+ * to the message. iter is invalid until GNUNET_DBUS_push_close_array has been
+ * called. After calling this function, iter_sub becomes invalid and iter can
+ * again be used to push data to the message.
+ */
void
GNUNET_DBUS_push_close_struct (
DBusMessage *message,
@@ -122,6 +196,12 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Finish pushing a variant to a DBusMessage. This must be called after
+ * GNUNET_DBUS_push_open_variant and after the variant's value has been pushed
+ * to the message. After calling this function, iter_sub becomes invalid and
+ * iter can again be used to push data to the message.
+ */
void
GNUNET_DBUS_push_close_variant (
DBusMessage *message,
@@ -128,6 +208,12 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Finish pushing a dictionary entry to a DBusMessage. This must be called
+ * after GNUNET_DBUS_push_open_dict_entry and after the key and value have been
+ * pushed to the message. After calling this function, iter_sub becomes invalid
+ * and iter can again be used to push data to the message.
+ */
void
GNUNET_DBUS_push_close_dict_entry (
DBusMessage *message,
@@ -134,6 +220,10 @@
DBusMessageIter *iter,
DBusMessageIter *iter_sub);
+/**
+ * Push an array of bytes to a DBusMessage, advancing the iterator. The values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_byte_array (
DBusMessage *message,
@@ -141,6 +231,10 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push an array of booleans to a DBusMessage, advancing the iterator. The
values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_boolean_array (
DBusMessage *message,
@@ -148,6 +242,10 @@
const dbus_bool_t *value,
size_t value_count);
+/**
+ * Push an array of int16s to a DBusMessage, advancing the iterator. The values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_int16_array (
DBusMessage *message,
@@ -155,6 +253,10 @@
const dbus_int16_t *value,
size_t value_count);
+/**
+ * Push an array of uint16s to a DBusMessage, advancing the iterator. The
values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_uint16_array (
DBusMessage *message,
@@ -162,6 +264,10 @@
const dbus_uint16_t *value,
size_t value_count);
+/**
+ * Push an array of int32s to a DBusMessage, advancing the iterator. The values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_int32_array (
DBusMessage *message,
@@ -169,6 +275,10 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push an array of uint32s to a DBusMessage, advancing the iterator. The
values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_uint32_array (
DBusMessage *message,
@@ -176,6 +286,10 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push an array of int64s to a DBusMessage, advancing the iterator. The values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_int64_array (
DBusMessage *message,
@@ -183,6 +297,10 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push an array of uint64s to a DBusMessage, advancing the iterator. The
values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_uint64_array (
DBusMessage *message,
@@ -190,6 +308,10 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push an array of doubles to a DBusMessage, advancing the iterator. The
values
+ * are copied to the message. value_count is the number of elements in the
array.
+ */
void
GNUNET_DBUS_push_double_array (
DBusMessage *message,
@@ -197,6 +319,12 @@
const unsigned char *value,
size_t value_count);
+/**
+ * Push binary data to a DBusMessage, advancing the iterator. The data is
+ * copied to the message. value_count is the number of bytes of data. The data
+ * may be represented on-the-wire as either an array of bytes or a base32
+ * encoded string depending on the pretty_encoding flag of the message.
+ */
void
GNUNET_DBUS_push_data (
DBusMessage *message,
@@ -204,6 +332,24 @@
const void *value,
size_t value_size);
+/*
+ * Push a bitfield enum to a DBusMessage, advancing the iterator. A bitfield
+ * enum is an enum where the individual bits represent different flags. See for
+ * example the definition of GNUNET_GNSRECORD_Flags:
+ *
+ * enum GNUNET_GNSRECORD_Flags { GNUNET_GNSRECORD_RF_PRIVATE = 2, //
+ * GNUNET_GNSRECORD_RF_UNUSED = 4, GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION =
+ * 8, GNUNET_GNSRECORD_RF_SHADOW_RECORD = 16 }
+ *
+ * Bitfield enums can be sent across the wire in either their integer form (as
+ * a uint32) or as an array of strings depending on the pretty_encoding flag of
+ * the message. Sending an int is more efficient and is what libraries built
+ * around the DBus API would use. People using the DBus API directly via the
+ * command line or a DBus debugger may prefer to receive human-readable strings
+ * for convenience. names is a pointer to a {NULL, 0}-terminated array of
+ * GNUNET_DBUS_StringEnumPair which assigns human-readable names to the
+ * bitfields.
+ */
void
GNUNET_DBUS_push_bitfield (
DBusMessage *message,
@@ -211,6 +357,16 @@
const int *value,
const struct GNUNET_DBUS_StringEnumPair *fields);
+/**
+ * Push an enum to a DBusMessage, advancing the iterator. enums can be sent
+ * across the wire as either a uint32 or as a string depending on the
+ * pretty_encoding flag of the message. Sending a uint32 is more efficient and
+ * is what libraries built around the DBus API would use. People using the DBus
+ * API directly via the command line or a DBus debugger may prefer to receive
+ * human-readable strings for convenience. names is a pointer to a
+ * {NULL, 0}-terminated array of GNUNET_DBUS_StringEnumPair which assigns
+ * human-readable names to the different enum variants.
+ */
void
GNUNET_DBUS_push_enum (
DBusMessage *message,
@@ -218,6 +374,9 @@
const int *value,
const struct GNUNET_DBUS_StringEnumPair *names);
+/**
+ * Push a GNUNET_HashCode to a DBusMessage, advancing the iterator.
+ */
void
GNUNET_DBUS_push_hashcode (
DBusMessage *message,
@@ -224,6 +383,9 @@
DBusMessageIter *iter,
const struct GNUNET_HashCode *value);
+/**
+ * Push a GNUNET_PeerIdentity to a DBusMessage, advancing the iterator.
+ */
void
GNUNET_DBUS_push_peer_identity (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_service.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_service.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_service.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -5,40 +5,71 @@
#include <gnunet/gnunet_common.h>
#include <gnunet/gnunet_configuration_lib.h>
+/**
+ * Represents a DBus service that we are running.
+ */
struct GNUNET_DBUS_Service;
#include "gnunet_dbus_lib_object.h"
#include "gnunet_dbus_lib_client.h"
+/**
+ * The type of callbacks used to handle newly-connecting clients.
+ */
typedef void (*GNUNET_DBUS_ClientConnectsHandler)(
struct GNUNET_DBUS_Service *service,
struct GNUNET_DBUS_Client *client);
+
+/**
+ * The type of callbacks used to handle clients disconnecting.
+ */
typedef void (*GNUNET_DBUS_ClientDisconnectsHandler)(
struct GNUNET_DBUS_Service *service,
struct GNUNET_DBUS_Client *client);
+/**
+ * Create a service with the given name and configuration. The service will
+ * start running immediately in GNUnet's scheduler.
+ */
struct GNUNET_DBUS_Service *
GNUNET_DBUS_service_create (
const struct GNUNET_CONFIGURATION_Handle *cfg,
const char *name);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Service by one.
+ */
void
GNUNET_DBUS_service_ref (
struct GNUNET_DBUS_Service *service);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Service by one. Will free
+ * the service if the reference count reaches zero.
+ */
void
GNUNET_DBUS_service_unref (
struct GNUNET_DBUS_Service *service);
+/**
+ * Get a reference to this GNUNET_DBUS_Service's configuration.
+ */
const struct GNUNET_CONFIGURATION_Handle *
GNUNET_DBUS_service_get_config (
struct GNUNET_DBUS_Service *service);
+/**
+ * Send an arbitrary message from this service.
+ */
void
GNUNET_DBUS_service_send (
struct GNUNET_DBUS_Service *service,
DBusMessage *dbus_message);
+/**
+ * Set the callbacks used by this service to handle clients connecting and
+ * disconnecting.
+ */
void
GNUNET_DBUS_service_set_client_handlers (
struct GNUNET_DBUS_Service *service,
@@ -45,6 +76,9 @@
GNUNET_DBUS_ClientConnectsHandler client_connects,
GNUNET_DBUS_ClientDisconnectsHandler client_disconnects);
+/**
+ * Get this GNUNET_DBUS_Service's root object (a.k.a. '/')
+ */
struct GNUNET_DBUS_Object *
GNUNET_DBUS_service_get_root_object (
struct GNUNET_DBUS_Service *service);
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_signal.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_signal.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_signal.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -1,11 +1,17 @@
#ifndef GNUNET_DBUS_LIB_SIGNAL_H
#define GNUNET_DBUS_LIB_SIGNAL_H
+/**
+ * Defines a DBus signal that may be sent from an interface.
+ */
struct GNUNET_DBUS_Signal;
#include "gnunet_dbus_lib_object_path.h"
#include "gnunet_dbus_lib_interface.h"
+/**
+ * An iterable, double-linked-list of GNUNET_DBUS_Signal.
+ */
struct GNUNET_DBUS_SignalIterator
{
/* linked list */
@@ -15,18 +21,34 @@
struct GNUNET_DBUS_Signal *signal;
};
+/**
+ * Create a signal with the given name. The signal should be populated with
+ * argument definitions then bound to an interface with
+ * GNUNET_DBUS_interface_add_signal.
+ */
struct GNUNET_DBUS_Signal *
GNUNET_DBUS_signal_create (
const char *name);
+/**
+ * Increase the reference count of this GNUNET_DBUS_Signal by one.
+ */
void
GNUNET_DBUS_signal_ref (
struct GNUNET_DBUS_Signal *signal);
+/**
+ * Decrease the reference count of this GNUNET_DBUS_Signal by one. Will free
+ * the GNUNET_DBUS_Signal if the reference count reaches zero.
+ */
void
GNUNET_DBUS_signal_unref (
struct GNUNET_DBUS_Signal *signal);
+/**
+ * Adds an argument definition to this GNUNET_DBUS_Signal given both it's name
+ * and it's DBus type signature.
+ */
void
GNUNET_DBUS_signal_add_arg (
struct GNUNET_DBUS_Signal *signal,
@@ -33,14 +55,27 @@
const char *name,
const char *signature);
+/**
+ * Get the name of this GNUNET_DBUS_Signal.
+ */
const char *
GNUNET_DBUS_signal_get_name (
const struct GNUNET_DBUS_Signal *signal);
+/**
+ * Iterate over the arguments of this GNUNET_DBUS_Signal.
+ */
const struct GNUNET_DBUS_ArgIterator *
GNUNET_DBUS_signal_iterate_args (
const struct GNUNET_DBUS_Signal *signal);
+/**
+ * Instantiate the signal so that it can be sent to all interested peers on the
+ * bus. The returned DBusMessage must be populated with the signal's arguments
+ * and can then be sent to send the signal. The signal will originate from the
+ * supplied object path and interface. pretty sets whether data pushed to the
+ * returned DBusMessage will be prety-encoded.
+ */
DBusMessage *
GNUNET_DBUS_signal_spawn (
const struct GNUNET_DBUS_Signal *signal,
@@ -48,6 +83,13 @@
const struct GNUNET_DBUS_Interface *interface,
bool pretty);
+/**
+ * Instantiate the signal so that it can be sent to a single client. The
+ * returned DBusMessage must be populated with the signal's arguments and can
+ * then be sent to send the signal. The signal will originate from the supplied
+ * object path and interface. pretty sets whether data pushed to the returned
+ * DBusMessage will be prety-encoded.
+ */
DBusMessage *
GNUNET_DBUS_signal_spawn_unicast (
const struct GNUNET_DBUS_Signal *signal,
Modified: gnunet-dbus/src/lib/include/gnunet_dbus_lib_signature.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dbus_lib_signature.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dbus_lib_signature.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -29,6 +29,11 @@
#define GNUNET_DBUS_SIGNATURE_HASHCODE GNUNET_DBUS_SIGNATURE_VARIANT
#define GNUNET_DBUS_SIGNATURE_PEER_IDENTITY
GNUNET_DBUS_SIGNATURE_STRUCT(GNUNET_CRYPTO_DBUS_SIGNATURE_EDDSA_PUBLIC_KEY)
+/**
+ * Formats the given DBus typecode as a string. For example,
+ * GNUNET_DBUS_signature_typecode_to_string(DBUS_TYPE_UINT32) will return the
+ * constant string "u"
+ */
const char *
GNUNET_DBUS_signature_typecode_to_string (
int typecode);
Modified: gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib.h 2016-01-19 13:43:51 UTC
(rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib.h 2016-01-19 14:28:09 UTC
(rev 36847)
@@ -8,6 +8,11 @@
#include <gnunet_dbus_lib.h>
+/**
+ * A {NULL, 0}-terminated list of textual descriptions of
+ * `GNUNET_DHT_RouteOption` enum variants. Used for converting back-and-forth
+ * between `GNUNET_DHT_RouteOption` and `const char *`
+ */
extern const struct GNUNET_DBUS_StringEnumPair
GNUNET_DHT_DBUS_route_option_description[];
#include "gnunet_dht_dbus_lib_push.h"
Modified: gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_pop.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_pop.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,6 +3,11 @@
#include "gnunet_dht_dbus_lib.h"
+/**
+ * Pop a GNUNET_DHT_RouteOption from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_DHT_DBUS_pop_route_option (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_push.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_dht_dbus_lib_push.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,6 +3,9 @@
#include "gnunet_dht_dbus_lib.h"
+/**
+ * Push a GNUNET_DHT_RouteOption to the DBusMessage, advancing the iterator.
+ */
void
GNUNET_DHT_DBUS_push_route_option (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -3,6 +3,10 @@
#include <gnunet_dbus_lib.h>
+/**
+ * A {NULL, 0}-terminate array of textual descriptions of the different
+ * GNUNET_GNSRECORD_Flags flags.
+ */
const struct GNUNET_DBUS_StringEnumPair
*GNUNET_GNSRECORD_DBUS_describe_flags();
#include "gnunet_gnsrecord_dbus_lib_push.h"
Modified: gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_pop.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_pop.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -1,6 +1,11 @@
#ifndef GNUNET_GNSRECORD_DBUS_LIB_POP_H
#define GNUNET_GNSRECORD_DBUS_LIB_POP_H
+/**
+ * Pop a GNUNET_GNSRECORD_Type from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_GNSRECORD_DBUS_pop_type (
DBusMessage *message,
@@ -8,6 +13,11 @@
const char *arg_name,
uint32_t *value);
+/**
+ * Pop a GNUNET_GNSRECORD_Flags from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_GNSRECORD_DBUS_pop_flags (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_push.h
2016-01-19 13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_gnsrecord_dbus_lib_push.h
2016-01-19 14:28:09 UTC (rev 36847)
@@ -7,6 +7,9 @@
#include "gnunet_gnsrecord_dbus_lib.h"
+/**
+ * Push a GNUNET_GNSRECORD_Type to a DBusMessage, advancing the iterator.
+ */
void
GNUNET_GNSRECORD_DBUS_push_type (
DBusMessage *message,
@@ -13,6 +16,9 @@
DBusMessageIter *iter,
const uint32_t *value);
+/**
+ * Push a GNUNET_GNSRECORD_Flags to a DBusMessage, advancing the iterator.
+ */
void
GNUNET_GNSRECORD_DBUS_push_flags (
DBusMessage *message,
@@ -19,6 +25,9 @@
DBusMessageIter *iter,
const enum GNUNET_GNSRECORD_Flags *value);
+/**
+ * Push a GNUNET_GNSRECORD_Data to a DBusMessage, advancing the iterator.
+ */
void
GNUNET_GNSRECORD_DBUS_push_data (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_pop.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_pop.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_pop.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -1,6 +1,11 @@
#ifndef GNUNET_TIME_DBUS_LIB_POP_H
#define GNUNET_TIME_DBUS_LIB_POP_H
+/**
+ * Pop a GNUNET_TIME_Absolute from a DBusMessage, advancing the iterator.
+ * `arg_name` is used for reporting useful diagnostics if the value in the
+ * message is missing or the wrong type.
+ */
DBusMessage *
GNUNET_TIME_DBUS_pop_absolute (
DBusMessage *message,
Modified: gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_push.h
===================================================================
--- gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_push.h 2016-01-19
13:43:51 UTC (rev 36846)
+++ gnunet-dbus/src/lib/include/gnunet_time_dbus_lib_push.h 2016-01-19
14:28:09 UTC (rev 36847)
@@ -1,6 +1,9 @@
#ifndef GNUNET_TIME_DBUS_LIB_PUSH_H
#define GNUNET_TIME_DBUS_LIB_PUSH_H
+/**
+ * Push a GNUNET_TIME_Absolute to DBusMessage, advancing the iterator.
+ */
void
GNUNET_TIME_DBUS_push_absolute (
DBusMessage *message,
@@ -7,6 +10,9 @@
DBusMessageIter *iter,
const struct GNUNET_TIME_Absolute *value);
+/**
+ * Push a GNUNET_TIME_Relative to DBusMessage, advancing the iterator.
+ */
void
GNUNET_TIME_DBUS_push_relative (
DBusMessage *message,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r36847 - gnunet-dbus/src/lib/include,
gnunet <=