2006-10-19 Havoc Pennington <hp@redhat.com>

* Fix a pile of Doxygen warnings and missing docs
This commit is contained in:
Havoc Pennington 2006-10-20 03:05:00 +00:00
parent fe1f793a4f
commit 15ef0ef6fb
31 changed files with 416 additions and 73 deletions

View file

@ -1,3 +1,7 @@
2006-10-19 Havoc Pennington <hp@redhat.com>
* Fix a pile of Doxygen warnings and missing docs
2006-10-19 John (J5) Palmieri <johnp@redhat.com>
* bus/dir-watch-default.c, bus/dir-watch-dnotify.c,

View file

@ -49,8 +49,20 @@ struct DBusAddressEntry
};
/**
*
* Sets #DBUS_ERROR_BAD_ADDRESS.
* If address_problem_type and address_problem_field are not #NULL,
* sets an error message about how the field is no good. Otherwise, sets
* address_problem_other as the error message.
*
* @param error the error to set
* @param address_problem_type the address type of the bad address or #NULL
* @param address_problem_field the missing field of the bad address or #NULL
* @param address_problem_other any other error message or #NULL
*/
void
_dbus_set_bad_address (DBusError *error,
_dbus_set_bad_address (DBusError *error,
const char *address_problem_type,
const char *address_problem_field,
const char *address_problem_other)
@ -65,6 +77,10 @@ _dbus_set_bad_address (DBusError *error,
address_problem_other);
}
/**
* #TRUE if the byte need not be escaped when found in a dbus address.
* All other bytes are required to be escaped in a valid address.
*/
#define _DBUS_ADDRESS_OPTIONALLY_ESCAPED_BYTE(b) \
(((b) >= 'a' && (b) <= 'z') || \
((b) >= 'A' && (b) <= 'Z') || \
@ -615,6 +631,9 @@ dbus_address_unescape_value (const char *value,
/** @} */ /* End of public API */
#ifdef DBUS_BUILD_TESTS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "dbus-test.h"
#include <stdlib.h>
@ -782,4 +801,6 @@ _dbus_address_test (void)
return TRUE;
}
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif

View file

@ -373,18 +373,18 @@ _dbus_connection_queue_received_message (DBusConnection *connection,
* variable pointer
*/
void
_dbus_connection_test_get_locks (DBusConnection *conn,
_dbus_connection_test_get_locks (DBusConnection *connection,
DBusMutex **mutex_loc,
DBusMutex **dispatch_mutex_loc,
DBusMutex **io_path_mutex_loc,
DBusCondVar **dispatch_cond_loc,
DBusCondVar **io_path_cond_loc)
{
*mutex_loc = conn->mutex;
*dispatch_mutex_loc = conn->dispatch_mutex;
*io_path_mutex_loc = conn->io_path_mutex;
*dispatch_cond_loc = conn->dispatch_cond;
*io_path_cond_loc = conn->io_path_cond;
*mutex_loc = connection->mutex;
*dispatch_mutex_loc = connection->dispatch_mutex;
*io_path_mutex_loc = connection->io_path_mutex;
*dispatch_cond_loc = connection->dispatch_cond;
*io_path_cond_loc = connection->io_path_cond;
}
#endif
@ -578,10 +578,13 @@ _dbus_connection_message_sent (DBusConnection *connection,
dbus_message_unref (message);
}
/** Function to be called in protected_change_watch() with refcount held */
typedef dbus_bool_t (* DBusWatchAddFunction) (DBusWatchList *list,
DBusWatch *watch);
/** Function to be called in protected_change_watch() with refcount held */
typedef void (* DBusWatchRemoveFunction) (DBusWatchList *list,
DBusWatch *watch);
/** Function to be called in protected_change_watch() with refcount held */
typedef void (* DBusWatchToggleFunction) (DBusWatchList *list,
DBusWatch *watch,
dbus_bool_t enabled);
@ -696,10 +699,13 @@ _dbus_connection_toggle_watch_unlocked (DBusConnection *connection,
enabled);
}
/** Function to be called in protected_change_timeout() with refcount held */
typedef dbus_bool_t (* DBusTimeoutAddFunction) (DBusTimeoutList *list,
DBusTimeout *timeout);
/** Function to be called in protected_change_timeout() with refcount held */
typedef void (* DBusTimeoutRemoveFunction) (DBusTimeoutList *list,
DBusTimeout *timeout);
/** Function to be called in protected_change_timeout() with refcount held */
typedef void (* DBusTimeoutToggleFunction) (DBusTimeoutList *list,
DBusTimeout *timeout,
dbus_bool_t enabled);
@ -1736,6 +1742,58 @@ _dbus_connection_open_internal (const char *address,
return connection;
}
/**
* Closes a shared OR private connection, while dbus_connection_close() can
* only be used on private connections. Should only be called by the
* dbus code that owns the connection - an owner must be known,
* the open/close state is like malloc/free, not like ref/unref.
*
* @param connection the connection
*/
void
_dbus_connection_close_possibly_shared (DBusConnection *connection)
{
_dbus_assert (connection != NULL);
_dbus_assert (connection->generation == _dbus_current_generation);
CONNECTION_LOCK (connection);
_dbus_connection_close_possibly_shared_and_unlock (connection);
}
/**
* Like dbus_connection_send(), but assumes the connection
* is already locked on function entry, and unlocks before returning.
*
* @param connection the connection
* @param message the message to send
* @param client_serial return location for client serial of sent message
* @returns #FALSE on out-of-memory
*/
dbus_bool_t
_dbus_connection_send_and_unlock (DBusConnection *connection,
DBusMessage *message,
dbus_uint32_t *client_serial)
{
DBusPreallocatedSend *preallocated;
_dbus_assert (connection != NULL);
_dbus_assert (message != NULL);
preallocated = _dbus_connection_preallocate_send_unlocked (connection);
if (preallocated == NULL)
{
CONNECTION_UNLOCK (connection);
return FALSE;
}
_dbus_connection_send_preallocated_and_unlock (connection,
preallocated,
message,
client_serial);
return TRUE;
}
/** @} */
/**
@ -2062,16 +2120,6 @@ _dbus_connection_close_possibly_shared_and_unlock (DBusConnection *connection)
dbus_connection_unref (connection);
}
void
_dbus_connection_close_possibly_shared (DBusConnection *connection)
{
_dbus_assert (connection != NULL);
_dbus_assert (connection->generation == _dbus_current_generation);
CONNECTION_LOCK (connection);
_dbus_connection_close_possibly_shared_and_unlock (connection);
}
/**
* Closes a private connection, so no further data can be sent or received.
* This disconnects the transport (such as a socket) underlying the
@ -2505,30 +2553,6 @@ _dbus_connection_send_unlocked_no_update (DBusConnection *connection,
return TRUE;
}
dbus_bool_t
_dbus_connection_send_and_unlock (DBusConnection *connection,
DBusMessage *message,
dbus_uint32_t *client_serial)
{
DBusPreallocatedSend *preallocated;
_dbus_assert (connection != NULL);
_dbus_assert (message != NULL);
preallocated = _dbus_connection_preallocate_send_unlocked (connection);
if (preallocated == NULL)
{
CONNECTION_UNLOCK (connection);
return FALSE;
}
_dbus_connection_send_preallocated_and_unlock (connection,
preallocated,
message,
client_serial);
return TRUE;
}
/**
* Adds a message to the outgoing message queue. Does not block to
* write the message to the network; that happens asynchronously. To
@ -3997,7 +4021,7 @@ _dbus_connection_run_builtin_filters_unlocked_no_update (DBusConnection *connect
* unrefs the message. Returns a status indicating whether messages/data
* remain, more memory is needed, or all data has been processed.
*
* Even if the dispatch status is #DBUS_DISPATCH_DATA_REMAINS,
* Even if the dispatch status is #DBUS_DISPATCH_DATA_REMAINS
* does not necessarily dispatch a message, as the data may
* be part of authentication or the like.
*

View file

@ -151,7 +151,7 @@ _dbus_data_slot_allocator_alloc (DBusDataSlotAllocator *allocator,
/**
* Deallocates an ID previously allocated with
* _dbus_data_slot_allocator_alloc(). Existing data stored on
* existing #DBusDataList objects with this ID will be freed when the
* existing #DBusDataSlotList objects with this ID will be freed when the
* data list is finalized, but may not be retrieved (and may only be
* replaced if someone else reallocates the slot).
* The slot value is reset to -1 if this is the last unref.

View file

@ -58,6 +58,7 @@ typedef enum
DBUS_HASH_POINTER, /**< Hash keys are pointers. */
DBUS_HASH_ULONG /**< Hash keys are unsigned long. */
} DBusHashType;
DBusHashTable* _dbus_hash_table_new (DBusHashType type,
DBusFreeFunction key_free_function,
DBusFreeFunction value_free_function);

View file

@ -28,8 +28,12 @@
#include <string.h>
#include <stdlib.h>
/* the blurb for this is "D-Bus secret" so it comes after "D-Bus low-level"
* which is the blurb for the DBus group, which makes Doxygen show
* the public API first on the index page. Yay for lame hacks.
*/
/**
* @defgroup DBusInternals D-Bus internal implementation details
* @defgroup DBusInternals D-Bus secret internal implementation details
* @brief Documentation useful when developing or debugging D-Bus itself.
*
*/
@ -288,6 +292,7 @@ _dbus_warn_check_failed(const char *format,
static dbus_bool_t verbose_initted = FALSE;
static dbus_bool_t verbose = TRUE;
/** Whether to show the current thread in verbose messages */
#define PTHREAD_IN_VERBOSE 0
#if PTHREAD_IN_VERBOSE
#include <pthread.h>
@ -304,6 +309,11 @@ _dbus_verbose_init (void)
}
}
/**
* Implementation of dbus_is_verbose() macro if built with verbose logging
* enabled.
* @returns whether verbose logging is active.
*/
dbus_bool_t
_dbus_is_verbose_real (void)
{

View file

@ -322,8 +322,8 @@ void _dbus_set_bad_address (DBusError *error,
*/
union DBusGUID
{
dbus_uint32_t as_uint32s[DBUS_UUID_LENGTH_BYTES / 4];
char as_bytes[DBUS_UUID_LENGTH_BYTES];
dbus_uint32_t as_uint32s[DBUS_UUID_LENGTH_BYTES / 4]; /**< guid as four uint32 values */
char as_bytes[DBUS_UUID_LENGTH_BYTES]; /**< guid as 16 single-byte values */
};
void _dbus_generate_uuid (DBusGUID *uuid);

View file

@ -905,4 +905,4 @@ _dbus_wait_for_memory (void)
_dbus_sleep_milliseconds (_dbus_get_oom_wait ());
}
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */

View file

@ -70,7 +70,7 @@ dbus_bool_t _dbus_loop_dispatch (DBusLoop *loop);
int _dbus_get_oom_wait (void);
void _dbus_wait_for_memory (void);
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif /* DBUS_MAINLOOP_H */

View file

@ -67,8 +67,8 @@ _DBUS_STRING_DEFINE_STATIC(_dbus_local_path_str, DBUS_PATH_LOCAL);
typedef struct
{
unsigned char code;
unsigned char type;
unsigned char code; /**< the field code */
unsigned char type; /**< the value type */
} HeaderFieldType;
static const HeaderFieldType

View file

@ -124,6 +124,9 @@ _dbus_type_reader_equal_values (const DBusTypeReader *lhs,
}
/* TESTS */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "dbus-test.h"
#include "dbus-list.h"
#include <stdio.h>
@ -3557,4 +3560,6 @@ container_destroy (TestTypeNode *node)
}
}
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif /* DBUS_BUILD_TESTS */

View file

@ -1116,8 +1116,8 @@ _dbus_type_reader_get_signature (const DBusTypeReader *reader,
typedef struct
{
DBusString replacement;
int padding;
DBusString replacement; /**< Marshaled value including alignment padding */
int padding; /**< How much of the replacement block is padding */
} ReplacementBlock;
static dbus_bool_t

View file

@ -23,6 +23,9 @@
#include <config.h>
#ifdef DBUS_BUILD_TESTS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "dbus-internals.h"
#include "dbus-marshal-validate.h"
#include "dbus-marshal-recursive.h"
@ -579,4 +582,6 @@ _dbus_marshal_validate_test (void)
return TRUE;
}
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif /* DBUS_BUILD_TESTS */

View file

@ -157,7 +157,7 @@ main(int argc, char **argv)
#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca)
#define T63 0x2ad7d2bb
#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
static void
md5_process(DBusMD5Context *context, const unsigned char *data /*[64]*/)

View file

@ -22,6 +22,8 @@
*/
#include <config.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#ifdef DBUS_BUILD_TESTS
#include "dbus-message-factory.h"
#include "dbus-message-private.h"
@ -1221,4 +1223,6 @@ _dbus_message_data_iter_get_and_next (DBusMessageDataIter *iter,
return TRUE;
}
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif /* DBUS_BUILD_TESTS */

View file

@ -126,6 +126,12 @@ _dbus_message_byteswap (DBusMessage *message)
_dbus_header_byteswap (&message->header, DBUS_COMPILER_BYTE_ORDER);
}
/** byte-swap the message if it doesn't match our byte order.
* Called only when we need the message in our own byte order,
* normally when reading arrays of integers or doubles.
* Otherwise should not be called since it would do needless
* work.
*/
#define ensure_byte_order(message) \
if (message->byte_order != DBUS_COMPILER_BYTE_ORDER) \
_dbus_message_byteswap (message)
@ -1119,10 +1125,9 @@ dbus_message_unref (DBusMessage *message)
* #DBUS_MESSAGE_TYPE_METHOD_CALL, #DBUS_MESSAGE_TYPE_METHOD_RETURN,
* #DBUS_MESSAGE_TYPE_ERROR, #DBUS_MESSAGE_TYPE_SIGNAL, but other
* types are allowed and all code must silently ignore messages of
* unknown type. DBUS_MESSAGE_TYPE_INVALID will never be returned,
* unknown type. #DBUS_MESSAGE_TYPE_INVALID will never be returned,
* however.
*
*
* @param message the message
* @returns the type of the message
*/

View file

@ -1141,6 +1141,9 @@ _dbus_decompose_path (const char* data,
/** @} */
#ifdef DBUS_BUILD_TESTS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "dbus-test.h"
#include <stdio.h>
@ -1926,4 +1929,6 @@ _dbus_object_tree_test (void)
return TRUE;
}
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
#endif /* DBUS_BUILD_TESTS */

View file

@ -44,7 +44,14 @@
*
* Opaque object representing a reply message that we're waiting for.
*/
/**
* shorter and more visible way to write _dbus_connection_lock()
*/
#define CONNECTION_LOCK(connection) _dbus_connection_lock(connection)
/**
* shorter and more visible way to write _dbus_connection_unlock()
*/
#define CONNECTION_UNLOCK(connection) _dbus_connection_unlock(connection)
struct DBusPendingCall
@ -189,6 +196,13 @@ _dbus_pending_call_complete (DBusPendingCall *pending)
}
}
/**
* If the pending call hasn't been timed out, add its timeout
* error reply to the connection's incoming message queue.
*
* @param pending the pending call
* @param connection the connection the call was sent to
*/
void
_dbus_pending_call_queue_timeout_error_unlocked (DBusPendingCall *pending,
DBusConnection *connection)

View file

@ -31,6 +31,9 @@
#ifdef __cplusplus
extern "C" {
#if 0
} /* avoids confusing emacs indentation */
#endif
#endif
/* Normally docs are in .c files, but there isn't a .c file for this. */
@ -52,62 +55,113 @@ extern "C" {
/** Protocol version */
#define DBUS_MAJOR_PROTOCOL_VERSION 1
/** Never a legitimate type */
/** Type code that is never equal to a legitimate type code */
#define DBUS_TYPE_INVALID ((int) '\0')
/** #DBUS_TYPE_INVALID as a string literal instead of a int literal */
#define DBUS_TYPE_INVALID_AS_STRING "\0"
/* Primitive types */
/** Type code marking an 8-bit unsigned integer */
#define DBUS_TYPE_BYTE ((int) 'y')
/** #DBUS_TYPE_BYTE as a string literal instead of a int literal */
#define DBUS_TYPE_BYTE_AS_STRING "y"
/** Type code marking a boolean */
#define DBUS_TYPE_BOOLEAN ((int) 'b')
/** #DBUS_TYPE_BOOLEAN as a string literal instead of a int literal */
#define DBUS_TYPE_BOOLEAN_AS_STRING "b"
/** Type code marking a 16-bit signed integer */
#define DBUS_TYPE_INT16 ((int) 'n')
/** #DBUS_TYPE_INT16 as a string literal instead of a int literal */
#define DBUS_TYPE_INT16_AS_STRING "n"
/** Type code marking a 16-bit unsigned integer */
#define DBUS_TYPE_UINT16 ((int) 'q')
/** #DBUS_TYPE_UINT16 as a string literal instead of a int literal */
#define DBUS_TYPE_UINT16_AS_STRING "q"
/** Type code marking a 32-bit signed integer */
#define DBUS_TYPE_INT32 ((int) 'i')
/** #DBUS_TYPE_INT32 as a string literal instead of a int literal */
#define DBUS_TYPE_INT32_AS_STRING "i"
/** Type code marking a 32-bit unsigned integer */
#define DBUS_TYPE_UINT32 ((int) 'u')
/** #DBUS_TYPE_UINT32 as a string literal instead of a int literal */
#define DBUS_TYPE_UINT32_AS_STRING "u"
/** Type code marking a 64-bit signed integer */
#define DBUS_TYPE_INT64 ((int) 'x')
/** #DBUS_TYPE_INT64 as a string literal instead of a int literal */
#define DBUS_TYPE_INT64_AS_STRING "x"
/** Type code marking a 64-bit unsigned integer */
#define DBUS_TYPE_UINT64 ((int) 't')
/** #DBUS_TYPE_UINT64 as a string literal instead of a int literal */
#define DBUS_TYPE_UINT64_AS_STRING "t"
/** Type code marking an 8-byte double in IEEE 754 format */
#define DBUS_TYPE_DOUBLE ((int) 'd')
/** #DBUS_TYPE_DOUBLE as a string literal instead of a int literal */
#define DBUS_TYPE_DOUBLE_AS_STRING "d"
/** Type code marking a UTF-8 encoded, nul-terminated Unicode string */
#define DBUS_TYPE_STRING ((int) 's')
/** #DBUS_TYPE_STRING as a string literal instead of a int literal */
#define DBUS_TYPE_STRING_AS_STRING "s"
/** Type code marking a D-Bus object path */
#define DBUS_TYPE_OBJECT_PATH ((int) 'o')
/** #DBUS_TYPE_OBJECT_PATH as a string literal instead of a int literal */
#define DBUS_TYPE_OBJECT_PATH_AS_STRING "o"
/** Type code marking a D-Bus type signature */
#define DBUS_TYPE_SIGNATURE ((int) 'g')
/** #DBUS_TYPE_SIGNATURE as a string literal instead of a int literal */
#define DBUS_TYPE_SIGNATURE_AS_STRING "g"
/* Compound types */
/** Type code marking a D-Bus array type */
#define DBUS_TYPE_ARRAY ((int) 'a')
/** #DBUS_TYPE_ARRAY as a string literal instead of a int literal */
#define DBUS_TYPE_ARRAY_AS_STRING "a"
/** Type code marking a D-Bus variant type */
#define DBUS_TYPE_VARIANT ((int) 'v')
/** #DBUS_TYPE_VARIANT as a string literal instead of a int literal */
#define DBUS_TYPE_VARIANT_AS_STRING "v"
/** STRUCT and DICT_ENTRY are sort of special since their codes can't
* appear in a type string, instead
* DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear
*/
/** Type code used to represent a struct; however, this type code does not appear
* in type signatures, instead #DBUS_STRUCT_BEGIN_CHAR and #DBUS_STRUCT_END_CHAR will
* appear in a signature.
*/
#define DBUS_TYPE_STRUCT ((int) 'r')
/** #DBUS_TYPE_STRUCT as a string literal instead of a int literal */
#define DBUS_TYPE_STRUCT_AS_STRING "r"
/** Type code used to represent a dict entry; however, this type code does not appear
* in type signatures, instead #DBUS_DICT_ENTRY_BEGIN_CHAR and #DBUS_DICT_ENTRY_END_CHAR will
* appear in a signature.
*/
#define DBUS_TYPE_DICT_ENTRY ((int) 'e')
/** #DBUS_TYPE_DICT_ENTRY as a string literal instead of a int literal */
#define DBUS_TYPE_DICT_ENTRY_AS_STRING "e"
/** Does not count INVALID */
/** Does not include #DBUS_TYPE_INVALID, #DBUS_STRUCT_BEGIN_CHAR, #DBUS_STRUCT_END_CHAR,
* #DBUS_DICT_ENTRY_BEGIN_CHAR, or #DBUS_DICT_ENTRY_END_CHAR - i.e. it is the number of
* valid types, not the number of distinct characters that may appear in a type signature.
*/
#define DBUS_NUMBER_OF_TYPES (16)
/* characters other than typecodes that appear in type signatures */
/** Code marking the start of a struct type in a type signature */
#define DBUS_STRUCT_BEGIN_CHAR ((int) '(')
/** #DBUS_STRUCT_BEGIN_CHAR as a string literal instead of a int literal */
#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING "("
/** Code marking the end of a struct type in a type signature */
#define DBUS_STRUCT_END_CHAR ((int) ')')
/** #DBUS_STRUCT_END_CHAR a string literal instead of a int literal */
#define DBUS_STRUCT_END_CHAR_AS_STRING ")"
/** Code marking the start of a dict entry type in a type signature */
#define DBUS_DICT_ENTRY_BEGIN_CHAR ((int) '{')
/** #DBUS_DICT_ENTRY_BEGIN_CHAR as a string literal instead of a int literal */
#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING "{"
/** Code marking the end of a dict entry type in a type signature */
#define DBUS_DICT_ENTRY_END_CHAR ((int) '}')
/** #DBUS_DICT_ENTRY_END_CHAR as a string literal instead of a int literal */
#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING "}"
/** Max length in bytes of a bus name, interface, or member (not object
@ -160,27 +214,74 @@ extern "C" {
#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH 32
/* Types of message */
/** This value is never a valid message type, see dbus_message_get_type() */
#define DBUS_MESSAGE_TYPE_INVALID 0
/** Message type of a method call message, see dbus_message_get_type() */
#define DBUS_MESSAGE_TYPE_METHOD_CALL 1
/** Message type of a method return message, see dbus_message_get_type() */
#define DBUS_MESSAGE_TYPE_METHOD_RETURN 2
/** Message type of an error reply message, see dbus_message_get_type() */
#define DBUS_MESSAGE_TYPE_ERROR 3
/** Message type of a signal message, see dbus_message_get_type() */
#define DBUS_MESSAGE_TYPE_SIGNAL 4
/* Header flags */
/** If set, this flag means that the sender of a message does not care about getting
* a reply, so the recipient need not send one. See dbus_message_set_no_reply().
*/
#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1
/**
* If set, this flag means that even if the message bus knows how to start an owner for
* the destination bus name (see dbus_message_set_destination()), it should not
* do so. If this flag is not set, the bus may launch a program to process the
* message.
*/
#define DBUS_HEADER_FLAG_NO_AUTO_START 0x2
/* Header fields */
/** Not equal to any valid header field code */
#define DBUS_HEADER_FIELD_INVALID 0
/** Header field code for the path - the path is the object emitting a signal or the object receiving a method call.
* See dbus_message_set_path().
*/
#define DBUS_HEADER_FIELD_PATH 1
/** Header field code for the interface containing a member (method or signal).
* See dbus_message_set_interface().
*/
#define DBUS_HEADER_FIELD_INTERFACE 2
/** Header field code for a member (method or signal). See dbus_message_set_member(). */
#define DBUS_HEADER_FIELD_MEMBER 3
/** Header field code for an error name (found in #DBUS_MESSAGE_TYPE_ERROR messages).
* See dbus_message_set_error_name().
*/
#define DBUS_HEADER_FIELD_ERROR_NAME 4
/** Header field code for a reply serial, used to match a #DBUS_MESSAGE_TYPE_METHOD_RETURN message with the
* message that it's a reply to. See dbus_message_set_reply_serial().
*/
#define DBUS_HEADER_FIELD_REPLY_SERIAL 5
/**
* Header field code for the destination bus name of a message. See dbus_message_set_destination().
*/
#define DBUS_HEADER_FIELD_DESTINATION 6
/**
* Header field code for the sender of a message; usually initialized by the message bus.
* See dbus_message_set_sender().
*/
#define DBUS_HEADER_FIELD_SENDER 7
/**
* Header field code for the type signature of a message.
*/
#define DBUS_HEADER_FIELD_SIGNATURE 8
/**
* Value of the highest-numbered header field code, can be used to determine
* the size of an array indexed by header field code. Remember though
* that unknown codes must be ignored, so check for that before
* indexing the array.
*/
#define DBUS_HEADER_FIELD_LAST DBUS_HEADER_FIELD_SIGNATURE
/** Header format is defined as a signature:
@ -224,47 +325,88 @@ extern "C" {
* Also, don't change the formatting since that will break the sed
* script.
*/
/** A generic error; "something went wrong" - see the error message for more. */
#define DBUS_ERROR_FAILED "org.freedesktop.DBus.Error.Failed"
/** There was not enough memory to complete an operation. */
#define DBUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory"
/** The bus doesn't know how to launch a service to supply the bus name you wanted. */
#define DBUS_ERROR_SERVICE_UNKNOWN "org.freedesktop.DBus.Error.ServiceUnknown"
/** The bus name you referenced doesn't exist (i.e. no application owns it). */
#define DBUS_ERROR_NAME_HAS_NO_OWNER "org.freedesktop.DBus.Error.NameHasNoOwner"
/** No reply to a message expecting one, usually means a timeout occurred. */
#define DBUS_ERROR_NO_REPLY "org.freedesktop.DBus.Error.NoReply"
/** Something went wrong reading or writing to a socket, for example. */
#define DBUS_ERROR_IO_ERROR "org.freedesktop.DBus.Error.IOError"
/** A D-Bus bus address was malformed. */
#define DBUS_ERROR_BAD_ADDRESS "org.freedesktop.DBus.Error.BadAddress"
/** Requested operation isn't supported (like ENOSYS on UNIX). */
#define DBUS_ERROR_NOT_SUPPORTED "org.freedesktop.DBus.Error.NotSupported"
/** Some limited resource is exhausted. */
#define DBUS_ERROR_LIMITS_EXCEEDED "org.freedesktop.DBus.Error.LimitsExceeded"
/** Security restrictions don't allow doing what you're trying to do. */
#define DBUS_ERROR_ACCESS_DENIED "org.freedesktop.DBus.Error.AccessDenied"
/** Authentication didn't work. */
#define DBUS_ERROR_AUTH_FAILED "org.freedesktop.DBus.Error.AuthFailed"
/** Unable to connect to server (probably caused by ECONNREFUSED on a socket). */
#define DBUS_ERROR_NO_SERVER "org.freedesktop.DBus.Error.NoServer"
/** Certain timeout errors, possibly ETIMEDOUT on a socket. Note that #DBUS_ERROR_NO_REPLY is used for message reply timeouts. */
#define DBUS_ERROR_TIMEOUT "org.freedesktop.DBus.Error.Timeout"
/** No network access (probably ENETUNREACH on a socket). */
#define DBUS_ERROR_NO_NETWORK "org.freedesktop.DBus.Error.NoNetwork"
/** Can't bind a socket since its address is in use (i.e. EADDRINUSE). */
#define DBUS_ERROR_ADDRESS_IN_USE "org.freedesktop.DBus.Error.AddressInUse"
/** The connection is disconnected and you're trying to use it. */
#define DBUS_ERROR_DISCONNECTED "org.freedesktop.DBus.Error.Disconnected"
/** Invalid arguments passed to a method call. */
#define DBUS_ERROR_INVALID_ARGS "org.freedesktop.DBus.Error.InvalidArgs"
/** Missing file. */
#define DBUS_ERROR_FILE_NOT_FOUND "org.freedesktop.DBus.Error.FileNotFound"
/** Existing file and the operation you're using does not silently overwrite. */
#define DBUS_ERROR_FILE_EXISTS "org.freedesktop.DBus.Error.FileExists"
/** Method name you invoked isn't known by the object you invoked it on. */
#define DBUS_ERROR_UNKNOWN_METHOD "org.freedesktop.DBus.Error.UnknownMethod"
/** Certain other timeout errors, e.g. while starting a service. @todo redundant with #DBUS_ERROR_TIMEOUT */
#define DBUS_ERROR_TIMED_OUT "org.freedesktop.DBus.Error.TimedOut"
/** Tried to remove or modify a match rule that didn't exist. */
#define DBUS_ERROR_MATCH_RULE_NOT_FOUND "org.freedesktop.DBus.Error.MatchRuleNotFound"
/** The match rule isn't syntactically valid. */
#define DBUS_ERROR_MATCH_RULE_INVALID "org.freedesktop.DBus.Error.MatchRuleInvalid"
/** While starting a new process, the exec() call failed. */
#define DBUS_ERROR_SPAWN_EXEC_FAILED "org.freedesktop.DBus.Error.Spawn.ExecFailed"
/** While starting a new process, the fork() call failed. */
#define DBUS_ERROR_SPAWN_FORK_FAILED "org.freedesktop.DBus.Error.Spawn.ForkFailed"
/** While starting a new process, the child exited with a status code. */
#define DBUS_ERROR_SPAWN_CHILD_EXITED "org.freedesktop.DBus.Error.Spawn.ChildExited"
/** While starting a new process, the child exited on a signal. */
#define DBUS_ERROR_SPAWN_CHILD_SIGNALED "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
/** While starting a new process, something went wrong. */
#define DBUS_ERROR_SPAWN_FAILED "org.freedesktop.DBus.Error.Spawn.Failed"
/** Tried to get a UNIX process ID and it wasn't available. */
#define DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
/** A type signature is not valid. */
#define DBUS_ERROR_INVALID_SIGNATURE "org.freedesktop.DBus.Error.InvalidSignature"
/** A file contains invalid syntax or is otherwise broken. */
#define DBUS_ERROR_INVALID_FILE_CONTENT "org.freedesktop.DBus.Error.InvalidFileContent"
/** Asked for SELinux security context and it wasn't available. */
#define DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown"
/* XML introspection format */
/** XML namespace of the introspection format version 1.0 */
#define DBUS_INTROSPECT_1_0_XML_NAMESPACE "http://www.freedesktop.org/standards/dbus"
/** XML public identifier of the introspection format version 1.0 */
#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
/** XML system identifier of the introspection format version 1.0 */
#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
/** XML document type declaration of the introspection format version 1.0 */
#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<!DOCTYPE node PUBLIC \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n"
/** @} */
#ifdef __cplusplus
#if 0
{ /* avoids confusing emacs indentation */
#endif
}
#endif

View file

@ -329,7 +329,7 @@ _dbus_transport_debug_pipe_new (const char *server_name,
* Sets error if the result is not OK.
*
* @param entry an address entry
* @param a new DBusServer, or #NULL on failure.
* @param server_p location to store a new DBusServer, or #NULL on failure.
* @param error location to store rationale for failure on bad address
* @returns the outcome
*
@ -376,6 +376,14 @@ _dbus_server_listen_debug_pipe (DBusAddressEntry *entry,
}
}
/**
* Opens a debug pipe transport, used in the test suite.
*
* @param entry the address entry to try opening as debug-pipe
* @param transport_p return location for the opened transport
* @param error error to be set
* @returns result of the attempt
*/
DBusTransportOpenResult
_dbus_transport_open_debug_pipe (DBusAddressEntry *entry,
DBusTransport **transport_p,

View file

@ -43,7 +43,7 @@
* Sets error if the result is not OK.
*
* @param entry an address entry
* @param a new DBusServer, or #NULL on failure.
* @param server_p location to store a new DBusServer, or #NULL on failure.
* @param error location to store rationale for failure on bad address
* @returns the outcome
*

View file

@ -194,10 +194,13 @@ _dbus_server_finalize_base (DBusServer *server)
}
/** Function to be called in protected_change_watch() with refcount held */
typedef dbus_bool_t (* DBusWatchAddFunction) (DBusWatchList *list,
DBusWatch *watch);
/** Function to be called in protected_change_watch() with refcount held */
typedef void (* DBusWatchRemoveFunction) (DBusWatchList *list,
DBusWatch *watch);
/** Function to be called in protected_change_watch() with refcount held */
typedef void (* DBusWatchToggleFunction) (DBusWatchList *list,
DBusWatch *watch,
dbus_bool_t enabled);
@ -307,11 +310,13 @@ _dbus_server_toggle_watch (DBusServer *server,
enabled);
}
/** Function to be called in protected_change_timeout() with refcount held */
typedef dbus_bool_t (* DBusTimeoutAddFunction) (DBusTimeoutList *list,
DBusTimeout *timeout);
/** Function to be called in protected_change_timeout() with refcount held */
typedef void (* DBusTimeoutRemoveFunction) (DBusTimeoutList *list,
DBusTimeout *timeout);
/** Function to be called in protected_change_timeout() with refcount held */
typedef void (* DBusTimeoutToggleFunction) (DBusTimeoutList *list,
DBusTimeout *timeout,
dbus_bool_t enabled);

View file

@ -157,7 +157,7 @@ effort (for example the reengineering of a great many Capstone chips).
#define subRound(a, b, c, d, e, f, k, data) \
( e += ROTL( 5, a ) + f( b, c, d ) + k + data, b = ROTL( 30, b ) )
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#endif /* !DOXYGEN_SHOULD_SKIP_THIS */
/* Perform the SHA transformation. Note that this code, like MD5, seems to
break some optimizing compilers due to the complexity of the expressions

View file

@ -30,6 +30,9 @@
#ifdef __cplusplus
extern "C" {
#if 0
} /* avoids confusing emacs indentation */
#endif
#endif
/* Normally docs are in .c files, but there isn't a .c file for this. */
@ -44,6 +47,9 @@ extern "C" {
*/
/**
* Well-known bus types. See dbus_bus_get().
*/
typedef enum
{
DBUS_BUS_SESSION, /**< The login session bus */
@ -51,26 +57,37 @@ typedef enum
DBUS_BUS_STARTER /**< The bus that started us, if any */
} DBusBusType;
/**
* Results that a message handler can return.
*/
typedef enum
{
DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect */
DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect */
DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory to return another result */
DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect - no need to run more handlers. */
DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */
DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory in order to return #DBUS_HANDLER_RESULT_HANDLED or #DBUS_HANDLER_RESULT_NOT_YET_HANDLED. Please try again later with more memory. */
} DBusHandlerResult;
/* Services */
/* Bus names */
/** The bus name used to talk to the bus itself. */
#define DBUS_SERVICE_DBUS "org.freedesktop.DBus"
/* Paths */
/** The object path used to talk to the bus itself. */
#define DBUS_PATH_DBUS "/org/freedesktop/DBus"
/** The object path used in local/in-process-generated messages. */
#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
/* Interfaces, these #define don't do much other than
* catch typos at compile time
*/
/** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */
#define DBUS_INTERFACE_DBUS "org.freedesktop.DBus"
/** The interface supported by introspectable objects */
#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
/** The interface supported by objects with properties */
#define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"
/** The interface supported by most dbus peers */
#define DBUS_INTERFACE_PEER "org.freedesktop.DBus.Peer"
/** This is a special interface whose methods can only be invoked
@ -102,6 +119,9 @@ typedef enum
/** @} */
#ifdef __cplusplus
#if 0
{ /* avoids confusing emacs indentation */
#endif
}
#endif

View file

@ -29,9 +29,9 @@
typedef struct
{
const char *pos;
unsigned int finished : 1;
unsigned int in_array : 1;
const char *pos; /**< current position in the signature string */
unsigned int finished : 1; /**< true if we are at the end iter */
unsigned int in_array : 1; /**< true if we are a subiterator pointing to an array's element type */
} DBusSignatureRealIter;
/**

View file

@ -2011,7 +2011,7 @@ _dbus_string_skip_white_reverse (const DBusString *str,
* @todo owen correctly notes that this is a stupid function (it was
* written purely for test code,
* e.g. dbus-message-builder.c). Probably should be enforced as test
* code only with #ifdef DBUS_BUILD_TESTS
* code only with ifdef DBUS_BUILD_TESTS
*
* @param source the source string
* @param dest the destination string (contents are replaced)

View file

@ -107,6 +107,13 @@ _dbus_open_tcp_socket (int *fd,
return _dbus_open_socket(fd, AF_INET, SOCK_STREAM, 0, error);
}
/**
* Opens a UNIX domain socket (as in the socket() call).
* Does not bind the socket.
* @param fd return location for socket descriptor
* @param error return location for an error
* @returns #FALSE if error is set
*/
dbus_bool_t
_dbus_open_unix_socket (int *fd,
DBusError *error)
@ -114,6 +121,14 @@ _dbus_open_unix_socket (int *fd,
return _dbus_open_socket(fd, PF_UNIX, SOCK_STREAM, 0, error);
}
/**
* Closes a socket. Should not be used on non-socket
* file descriptors or handles.
*
* @param fd the socket
* @param error return location for an error
* @returns #FALSE if error is set
*/
dbus_bool_t
_dbus_close_socket (int fd,
DBusError *error)
@ -121,6 +136,15 @@ _dbus_close_socket (int fd,
return _dbus_close (fd, error);
}
/**
* Like _dbus_read(), but only works on sockets so is
* available on Windows.
*
* @param fd the socket
* @param buffer string to append data to
* @param count max amount of data to read
* @returns number of bytes appended to the string
*/
int
_dbus_read_socket (int fd,
DBusString *buffer,
@ -129,6 +153,16 @@ _dbus_read_socket (int fd,
return _dbus_read (fd, buffer, count);
}
/**
* Like _dbus_write(), but only supports sockets
* and is thus available on Windows.
*
* @param fd the file descriptor to write
* @param buffer the buffer to write data from
* @param start the first byte in the buffer to write
* @param len the number of bytes to try to write
* @returns the number of bytes written or -1 on error
*/
int
_dbus_write_socket (int fd,
const DBusString *buffer,
@ -138,6 +172,19 @@ _dbus_write_socket (int fd,
return _dbus_write (fd, buffer, start, len);
}
/**
* Like _dbus_write_two() but only works on sockets and is thus
* available on Windows.
*
* @param fd the file descriptor
* @param buffer1 first buffer
* @param start1 first byte to write in first buffer
* @param len1 number of bytes to write from first buffer
* @param buffer2 second buffer, or #NULL
* @param start2 first byte to write in second buffer
* @param len2 number of bytes to write in second buffer
* @returns total bytes written from both buffers, or -1 on error
*/
int
_dbus_write_socket_two (int fd,
const DBusString *buffer1,
@ -157,9 +204,12 @@ _dbus_write_socket_two (int fd,
* the data it reads to the DBusString buffer. It appends
* up to the given count, and returns the same value
* and same errno as read(). The only exception is that
* _dbus_read() handles EINTR for you. _dbus_read() can
* _dbus_read() handles EINTR for you. Also, _dbus_read() can
* return ENOMEM, even though regular UNIX read doesn't.
*
* Unlike _dbus_read_socket(), _dbus_read() is not available
* on Windows.
*
* @param fd the file descriptor to read from
* @param buffer the buffer to append data to
* @param count the amount of data to read
@ -2441,7 +2491,7 @@ _dbus_get_autolaunch_address (DBusString *address,
* we might want to use the registry instead of a file for
* this, and I'm not sure how we'd ensure the uuid gets created.
*
* @param guid to init with the machine's uuid
* @param machine_id guid to init with the machine's uuid
* @param create_if_not_found try to create the uuid if it doesn't exist
* @param error the error return
* @returns #FALSE if the error is set

View file

@ -1258,6 +1258,14 @@ error:
return NULL;
}
/**
* Opens a TCP socket transport.
*
* @param entry the address entry to try opening as a tcp transport.
* @param transport_p return location for the opened transport
* @param error error to be set
* @returns result of the attempt
*/
DBusTransportOpenResult
_dbus_transport_open_socket(DBusAddressEntry *entry,
DBusTransport **transport_p,

View file

@ -108,6 +108,14 @@ _dbus_transport_new_for_domain_socket (const char *path,
return NULL;
}
/**
* Opens platform specific transport types.
*
* @param entry the address entry to try opening
* @param transport_p return location for the opened transport
* @param error error to be set
* @returns result of the attempt
*/
DBusTransportOpenResult
_dbus_transport_open_platform_specific (DBusAddressEntry *entry,
DBusTransport **transport_p,

View file

@ -85,6 +85,8 @@ typedef dbus_uint32_t dbus_bool_t;
* C99 requires a 64-bit type and most likely all interesting
* compilers support one. GLib for example flat-out requires
* a 64-bit type.
*
* You probably want to just assume #DBUS_HAVE_INT64 is always defined.
*/
/**
@ -96,6 +98,8 @@ typedef dbus_uint32_t dbus_bool_t;
* C99 requires a 64-bit type and most likely all interesting
* compilers support one. GLib for example flat-out requires
* a 64-bit type.
*
* You probably want to just assume #DBUS_HAVE_INT64 is always defined.
*/
/**

View file

@ -70,7 +70,7 @@ return_uuid (DBusGUID *uuid,
* @param uuid_p out param to return the uuid
* @param create_if_not_found whether to create it if not already there
* @param error error return
* @param returns #FALSE if error is set
* @returns #FALSE if error is set
*/
dbus_bool_t
dbus_internal_do_not_use_get_uuid (const char *filename,
@ -109,7 +109,7 @@ dbus_internal_do_not_use_get_uuid (const char *filename,
* the libdbus soname.
*
* @param uuid_p out param to return the uuid
* @param returns #FALSE if no memory
* @returns #FALSE if no memory
*/
dbus_bool_t
dbus_internal_do_not_use_create_uuid (char **uuid_p)