epoc32/include/stdapis/dbus-1.0/dbus/dbus-connection.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
/* -*- mode: C; c-file-style: "gnu" -*- */
williamr@2
     2
/* dbus-connection.h DBusConnection object
williamr@2
     3
 *
williamr@2
     4
 * Copyright (C) 2002, 2003  Red Hat Inc.
williamr@2
     5
 * Portion Copyright © 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
williamr@2
     6
 * Licensed under the Academic Free License version 2.1
williamr@2
     7
 * 
williamr@2
     8
 * This program is free software; you can redistribute it and/or modify
williamr@2
     9
 * it under the terms of the GNU General Public License as published by
williamr@2
    10
 * the Free Software Foundation; either version 2 of the License, or
williamr@2
    11
 * (at your option) any later version.
williamr@2
    12
 *
williamr@2
    13
 * This program is distributed in the hope that it will be useful,
williamr@2
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
williamr@2
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
williamr@2
    16
 * GNU General Public License for more details.
williamr@2
    17
 * 
williamr@2
    18
 * You should have received a copy of the GNU General Public License
williamr@2
    19
 * along with this program; if not, write to the Free Software
williamr@2
    20
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
williamr@2
    21
 *
williamr@2
    22
 */
williamr@2
    23
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
williamr@2
    24
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
williamr@2
    25
#endif
williamr@2
    26
williamr@2
    27
#ifndef DBUS_CONNECTION_H
williamr@2
    28
#define DBUS_CONNECTION_H
williamr@2
    29
williamr@2
    30
#include <dbus/dbus-errors.h>
williamr@2
    31
#include <dbus/dbus-memory.h>
williamr@2
    32
#include <dbus/dbus-message.h>
williamr@2
    33
#include <dbus/dbus-shared.h>
williamr@2
    34
williamr@2
    35
DBUS_BEGIN_DECLS
williamr@2
    36
williamr@2
    37
/**
williamr@2
    38
 * @addtogroup DBusConnection
williamr@2
    39
 * @{
williamr@2
    40
 */
williamr@2
    41
williamr@2
    42
/* documented in dbus-watch.c */
williamr@2
    43
typedef struct DBusWatch DBusWatch;
williamr@2
    44
/* documented in dbus-timeout.c */
williamr@2
    45
typedef struct DBusTimeout DBusTimeout;
williamr@2
    46
/** Opaque type representing preallocated resources so a message can be sent without further memory allocation. */
williamr@2
    47
typedef struct DBusPreallocatedSend DBusPreallocatedSend;
williamr@2
    48
/** Opaque type representing a method call that has not yet received a reply. */
williamr@2
    49
typedef struct DBusPendingCall DBusPendingCall;
williamr@2
    50
/** Opaque type representing a connection to a remote application and associated incoming/outgoing message queues. */
williamr@2
    51
typedef struct DBusConnection DBusConnection;
williamr@2
    52
/** Set of functions that must be implemented to handle messages sent to a particular object path. */
williamr@2
    53
typedef struct DBusObjectPathVTable DBusObjectPathVTable;
williamr@2
    54
williamr@2
    55
/**
williamr@2
    56
 * Indicates the status of a #DBusWatch.
williamr@2
    57
 */
williamr@2
    58
typedef enum
williamr@2
    59
{
williamr@2
    60
  DBUS_WATCH_READABLE = 1 << 0, /**< As in POLLIN */
williamr@2
    61
  DBUS_WATCH_WRITABLE = 1 << 1, /**< As in POLLOUT */
williamr@2
    62
  DBUS_WATCH_ERROR    = 1 << 2, /**< As in POLLERR (can't watch for
williamr@2
    63
                                 *   this, but can be present in
williamr@2
    64
                                 *   current state passed to
williamr@2
    65
                                 *   dbus_watch_handle()).
williamr@2
    66
                                 */
williamr@2
    67
  DBUS_WATCH_HANGUP   = 1 << 3  /**< As in POLLHUP (can't watch for
williamr@2
    68
                                 *   it, but can be present in current
williamr@2
    69
                                 *   state passed to
williamr@2
    70
                                 *   dbus_watch_handle()).
williamr@2
    71
                                 */
williamr@2
    72
} DBusWatchFlags;
williamr@2
    73
williamr@2
    74
/**
williamr@2
    75
 * Indicates the status of incoming data on a #DBusConnection. This determines whether
williamr@2
    76
 * dbus_connection_dispatch() needs to be called.
williamr@2
    77
 */
williamr@2
    78
typedef enum
williamr@2
    79
{
williamr@2
    80
  DBUS_DISPATCH_DATA_REMAINS,  /**< There is more data to potentially convert to messages. */
williamr@2
    81
  DBUS_DISPATCH_COMPLETE,      /**< All currently available data has been processed. */
williamr@2
    82
  DBUS_DISPATCH_NEED_MEMORY    /**< More memory is needed to continue. */
williamr@2
    83
} DBusDispatchStatus;
williamr@2
    84
williamr@2
    85
/** Called when libdbus needs a new watch to be monitored by the main
williamr@2
    86
 * loop. Returns #FALSE if it lacks enough memory to add the
williamr@2
    87
 * watch. Set by dbus_connection_set_watch_functions() or
williamr@2
    88
 * dbus_server_set_watch_functions().
williamr@2
    89
 */
williamr@2
    90
typedef dbus_bool_t (* DBusAddWatchFunction)       (DBusWatch      *watch,
williamr@2
    91
                                                    void           *data);
williamr@2
    92
/** Called when dbus_watch_get_enabled() may return a different value
williamr@2
    93
 *  than it did before.  Set by dbus_connection_set_watch_functions()
williamr@2
    94
 *  or dbus_server_set_watch_functions().
williamr@2
    95
 */
williamr@2
    96
typedef void        (* DBusWatchToggledFunction)   (DBusWatch      *watch,
williamr@2
    97
                                                    void           *data);
williamr@2
    98
/** Called when libdbus no longer needs a watch to be monitored by the
williamr@2
    99
 * main loop. Set by dbus_connection_set_watch_functions() or
williamr@2
   100
 * dbus_server_set_watch_functions().
williamr@2
   101
 */
williamr@2
   102
typedef void        (* DBusRemoveWatchFunction)    (DBusWatch      *watch,
williamr@2
   103
                                                    void           *data);
williamr@2
   104
/** Called when libdbus needs a new timeout to be monitored by the main
williamr@2
   105
 * loop. Returns #FALSE if it lacks enough memory to add the
williamr@2
   106
 * watch. Set by dbus_connection_set_timeout_functions() or
williamr@2
   107
 * dbus_server_set_timeout_functions().
williamr@2
   108
 */
williamr@2
   109
typedef dbus_bool_t (* DBusAddTimeoutFunction)     (DBusTimeout    *timeout,
williamr@2
   110
                                                    void           *data);
williamr@2
   111
/** Called when dbus_timeout_get_enabled() may return a different
williamr@2
   112
 * value than it did before.
williamr@2
   113
 * Set by dbus_connection_set_timeout_functions() or
williamr@2
   114
 * dbus_server_set_timeout_functions().
williamr@2
   115
 */
williamr@2
   116
typedef void        (* DBusTimeoutToggledFunction) (DBusTimeout    *timeout,
williamr@2
   117
                                                    void           *data);
williamr@2
   118
/** Called when libdbus no longer needs a timeout to be monitored by the
williamr@2
   119
 * main loop. Set by dbus_connection_set_timeout_functions() or
williamr@2
   120
 * dbus_server_set_timeout_functions().
williamr@2
   121
 */
williamr@2
   122
typedef void        (* DBusRemoveTimeoutFunction)  (DBusTimeout    *timeout,
williamr@2
   123
                                                    void           *data);
williamr@2
   124
/** Called when the return value of dbus_connection_get_dispatch_status()
williamr@2
   125
 * may have changed. Set with dbus_connection_set_dispatch_status_function().
williamr@2
   126
 */
williamr@2
   127
typedef void        (* DBusDispatchStatusFunction) (DBusConnection *connection,
williamr@2
   128
                                                    DBusDispatchStatus new_status,
williamr@2
   129
                                                    void           *data);
williamr@2
   130
/**
williamr@2
   131
 * Called when the main loop's thread should be notified that there's now work
williamr@2
   132
 * to do. Set with dbus_connection_set_wakeup_main_function().
williamr@2
   133
 */
williamr@2
   134
typedef void        (* DBusWakeupMainFunction)     (void           *data);
williamr@2
   135
/**
williamr@2
   136
 * Called during authentication on UNIX systems to check whether the given
williamr@2
   137
 * user ID is allowed to connect. Never called on Windows. Set with
williamr@2
   138
 * dbus_connection_set_unix_user_function().
williamr@2
   139
 */ 
williamr@2
   140
typedef dbus_bool_t (* DBusAllowUnixUserFunction)  (DBusConnection *connection,
williamr@2
   141
                                                    unsigned long   uid,
williamr@2
   142
                                                    void           *data);
williamr@2
   143
/**
williamr@2
   144
 * Called when a pending call now has a reply available. Set with
williamr@2
   145
 * dbus_pending_call_set_notify().
williamr@2
   146
 */
williamr@2
   147
typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending,
williamr@2
   148
                                                void            *user_data);
williamr@2
   149
williamr@2
   150
/**
williamr@2
   151
 * Called when a message needs to be handled. The result indicates whether or
williamr@2
   152
 * not more handlers should be run. Set with dbus_connection_add_filter().
williamr@2
   153
 */
williamr@2
   154
typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection     *connection,
williamr@2
   155
                                                         DBusMessage        *message,
williamr@2
   156
                                                         void               *user_data);
williamr@2
   157
williamr@2
   158
#ifdef __SYMBIAN32__
williamr@2
   159
IMPORT_C
williamr@2
   160
#endif
williamr@2
   161
DBusConnection*    dbus_connection_open                         (const char                 *address,
williamr@2
   162
                                                                 DBusError                  *error);
williamr@2
   163
#ifdef __SYMBIAN32__
williamr@2
   164
IMPORT_C
williamr@2
   165
#endif
williamr@2
   166
DBusConnection*    dbus_connection_open_private                 (const char                 *address,
williamr@2
   167
                                                                 DBusError                  *error);
williamr@2
   168
#ifdef __SYMBIAN32__
williamr@2
   169
IMPORT_C
williamr@2
   170
#endif
williamr@2
   171
DBusConnection*    dbus_connection_ref                          (DBusConnection             *connection);
williamr@2
   172
#ifdef __SYMBIAN32__
williamr@2
   173
IMPORT_C
williamr@2
   174
#endif
williamr@2
   175
void               dbus_connection_unref                        (DBusConnection             *connection);
williamr@2
   176
#ifdef __SYMBIAN32__
williamr@2
   177
IMPORT_C
williamr@2
   178
#endif
williamr@2
   179
void               dbus_connection_close                        (DBusConnection             *connection);
williamr@2
   180
#ifdef __SYMBIAN32__
williamr@2
   181
IMPORT_C
williamr@2
   182
#endif
williamr@2
   183
dbus_bool_t        dbus_connection_get_is_connected             (DBusConnection             *connection);
williamr@2
   184
#ifdef __SYMBIAN32__
williamr@2
   185
IMPORT_C
williamr@2
   186
#endif
williamr@2
   187
dbus_bool_t        dbus_connection_get_is_authenticated         (DBusConnection             *connection);
williamr@2
   188
#ifdef __SYMBIAN32__
williamr@2
   189
IMPORT_C
williamr@2
   190
#endif
williamr@2
   191
void               dbus_connection_set_exit_on_disconnect       (DBusConnection             *connection,
williamr@2
   192
                                                                 dbus_bool_t                 exit_on_disconnect);
williamr@2
   193
#ifdef __SYMBIAN32__
williamr@2
   194
IMPORT_C
williamr@2
   195
#endif
williamr@2
   196
void               dbus_connection_flush                        (DBusConnection             *connection);
williamr@2
   197
#ifdef __SYMBIAN32__
williamr@2
   198
IMPORT_C
williamr@2
   199
#endif
williamr@2
   200
dbus_bool_t        dbus_connection_read_write_dispatch          (DBusConnection             *connection,
williamr@2
   201
                                                                 int                         timeout_milliseconds);
williamr@2
   202
#ifdef __SYMBIAN32__
williamr@2
   203
IMPORT_C
williamr@2
   204
#endif
williamr@2
   205
dbus_bool_t        dbus_connection_read_write                   (DBusConnection             *connection,
williamr@2
   206
                                                                 int                         timeout_milliseconds);
williamr@2
   207
#ifdef __SYMBIAN32__
williamr@2
   208
IMPORT_C
williamr@2
   209
#endif
williamr@2
   210
DBusMessage*       dbus_connection_borrow_message               (DBusConnection             *connection);
williamr@2
   211
#ifdef __SYMBIAN32__
williamr@2
   212
IMPORT_C
williamr@2
   213
#endif
williamr@2
   214
void               dbus_connection_return_message               (DBusConnection             *connection,
williamr@2
   215
                                                                 DBusMessage                *message);
williamr@2
   216
#ifdef __SYMBIAN32__
williamr@2
   217
IMPORT_C
williamr@2
   218
#endif
williamr@2
   219
void               dbus_connection_steal_borrowed_message       (DBusConnection             *connection,
williamr@2
   220
                                                                 DBusMessage                *message);
williamr@2
   221
#ifdef __SYMBIAN32__
williamr@2
   222
IMPORT_C
williamr@2
   223
#endif
williamr@2
   224
DBusMessage*       dbus_connection_pop_message                  (DBusConnection             *connection);
williamr@2
   225
#ifdef __SYMBIAN32__
williamr@2
   226
IMPORT_C
williamr@2
   227
#endif
williamr@2
   228
DBusDispatchStatus dbus_connection_get_dispatch_status          (DBusConnection             *connection);
williamr@2
   229
#ifdef __SYMBIAN32__
williamr@2
   230
IMPORT_C
williamr@2
   231
#endif
williamr@2
   232
DBusDispatchStatus dbus_connection_dispatch                     (DBusConnection             *connection);
williamr@2
   233
#ifdef __SYMBIAN32__
williamr@2
   234
IMPORT_C
williamr@2
   235
#endif
williamr@2
   236
dbus_bool_t        dbus_connection_has_messages_to_send         (DBusConnection *connection);
williamr@2
   237
#ifdef __SYMBIAN32__
williamr@2
   238
IMPORT_C
williamr@2
   239
#endif
williamr@2
   240
dbus_bool_t        dbus_connection_send                         (DBusConnection             *connection,
williamr@2
   241
                                                                 DBusMessage                *message,
williamr@2
   242
                                                                 dbus_uint32_t              *client_serial);
williamr@2
   243
#ifdef __SYMBIAN32__
williamr@2
   244
IMPORT_C
williamr@2
   245
#endif
williamr@2
   246
dbus_bool_t        dbus_connection_send_with_reply              (DBusConnection             *connection,
williamr@2
   247
                                                                 DBusMessage                *message,
williamr@2
   248
                                                                 DBusPendingCall           **pending_return,
williamr@2
   249
                                                                 int                         timeout_milliseconds);
williamr@2
   250
#ifdef __SYMBIAN32__
williamr@2
   251
IMPORT_C
williamr@2
   252
#endif
williamr@2
   253
DBusMessage *      dbus_connection_send_with_reply_and_block    (DBusConnection             *connection,
williamr@2
   254
                                                                 DBusMessage                *message,
williamr@2
   255
                                                                 int                         timeout_milliseconds,
williamr@2
   256
                                                                 DBusError                  *error);
williamr@2
   257
#ifdef __SYMBIAN32__
williamr@2
   258
IMPORT_C
williamr@2
   259
#endif
williamr@2
   260
dbus_bool_t        dbus_connection_set_watch_functions          (DBusConnection             *connection,
williamr@2
   261
                                                                 DBusAddWatchFunction        add_function,
williamr@2
   262
                                                                 DBusRemoveWatchFunction     remove_function,
williamr@2
   263
                                                                 DBusWatchToggledFunction    toggled_function,
williamr@2
   264
                                                                 void                       *data,
williamr@2
   265
                                                                 DBusFreeFunction            free_data_function);
williamr@2
   266
#ifdef __SYMBIAN32__
williamr@2
   267
IMPORT_C
williamr@2
   268
#endif
williamr@2
   269
dbus_bool_t        dbus_connection_set_timeout_functions        (DBusConnection             *connection,
williamr@2
   270
                                                                 DBusAddTimeoutFunction      add_function,
williamr@2
   271
                                                                 DBusRemoveTimeoutFunction   remove_function,
williamr@2
   272
                                                                 DBusTimeoutToggledFunction  toggled_function,
williamr@2
   273
                                                                 void                       *data,
williamr@2
   274
                                                                 DBusFreeFunction            free_data_function);
williamr@2
   275
#ifdef __SYMBIAN32__
williamr@2
   276
IMPORT_C
williamr@2
   277
#endif
williamr@2
   278
void               dbus_connection_set_wakeup_main_function     (DBusConnection             *connection,
williamr@2
   279
                                                                 DBusWakeupMainFunction      wakeup_main_function,
williamr@2
   280
                                                                 void                       *data,
williamr@2
   281
                                                                 DBusFreeFunction            free_data_function);
williamr@2
   282
#ifdef __SYMBIAN32__
williamr@2
   283
IMPORT_C
williamr@2
   284
#endif
williamr@2
   285
void               dbus_connection_set_dispatch_status_function (DBusConnection             *connection,
williamr@2
   286
                                                                 DBusDispatchStatusFunction  function,
williamr@2
   287
                                                                 void                       *data,
williamr@2
   288
                                                                 DBusFreeFunction            free_data_function);
williamr@2
   289
#ifdef __SYMBIAN32__
williamr@2
   290
IMPORT_C
williamr@2
   291
#endif
williamr@2
   292
dbus_bool_t        dbus_connection_get_unix_user                (DBusConnection             *connection,
williamr@2
   293
                                                                 unsigned long              *uid);
williamr@2
   294
#ifdef __SYMBIAN32__
williamr@2
   295
IMPORT_C
williamr@2
   296
#endif
williamr@2
   297
dbus_bool_t        dbus_connection_get_unix_process_id          (DBusConnection             *connection,
williamr@2
   298
                                                                 unsigned long              *pid);
williamr@2
   299
#ifdef __SYMBIAN32__
williamr@2
   300
IMPORT_C
williamr@2
   301
#endif
williamr@2
   302
void               dbus_connection_set_unix_user_function       (DBusConnection             *connection,
williamr@2
   303
                                                                 DBusAllowUnixUserFunction   function,
williamr@2
   304
                                                                 void                       *data,
williamr@2
   305
                                                                 DBusFreeFunction            free_data_function);
williamr@2
   306
#ifdef __SYMBIAN32__
williamr@2
   307
IMPORT_C
williamr@2
   308
#endif
williamr@2
   309
void               dbus_connection_set_route_peer_messages      (DBusConnection             *connection,
williamr@2
   310
                                                                 dbus_bool_t                 value);
williamr@2
   311
williamr@2
   312
williamr@2
   313
/* Filters */
williamr@2
   314
williamr@2
   315
#ifdef __SYMBIAN32__
williamr@2
   316
IMPORT_C
williamr@2
   317
#endif
williamr@2
   318
dbus_bool_t dbus_connection_add_filter    (DBusConnection            *connection,
williamr@2
   319
                                           DBusHandleMessageFunction  function,
williamr@2
   320
                                           void                      *user_data,
williamr@2
   321
                                           DBusFreeFunction           free_data_function);
williamr@2
   322
#ifdef __SYMBIAN32__
williamr@2
   323
IMPORT_C
williamr@2
   324
#endif
williamr@2
   325
void        dbus_connection_remove_filter (DBusConnection            *connection,
williamr@2
   326
                                           DBusHandleMessageFunction  function,
williamr@2
   327
                                           void                      *user_data);
williamr@2
   328
williamr@2
   329
williamr@2
   330
/* Other */
williamr@2
   331
#ifdef __SYMBIAN32__
williamr@2
   332
IMPORT_C
williamr@2
   333
#endif
williamr@2
   334
dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t     *slot_p);
williamr@2
   335
#ifdef __SYMBIAN32__
williamr@2
   336
IMPORT_C
williamr@2
   337
#endif
williamr@2
   338
void        dbus_connection_free_data_slot     (dbus_int32_t     *slot_p);
williamr@2
   339
#ifdef __SYMBIAN32__
williamr@2
   340
IMPORT_C
williamr@2
   341
#endif
williamr@2
   342
dbus_bool_t dbus_connection_set_data           (DBusConnection   *connection,
williamr@2
   343
                                                dbus_int32_t      slot,
williamr@2
   344
                                                void             *data,
williamr@2
   345
                                                DBusFreeFunction  free_data_func);
williamr@2
   346
#ifdef __SYMBIAN32__
williamr@2
   347
IMPORT_C
williamr@2
   348
#endif
williamr@2
   349
void*       dbus_connection_get_data           (DBusConnection   *connection,
williamr@2
   350
                                                dbus_int32_t      slot);
williamr@2
   351
williamr@2
   352
#ifdef __SYMBIAN32__
williamr@2
   353
IMPORT_C
williamr@2
   354
#endif
williamr@2
   355
void        dbus_connection_set_change_sigpipe (dbus_bool_t       will_modify_sigpipe); 
williamr@2
   356
williamr@2
   357
#ifdef __SYMBIAN32__
williamr@2
   358
IMPORT_C
williamr@2
   359
#endif
williamr@2
   360
void dbus_connection_set_max_message_size  (DBusConnection *connection,
williamr@2
   361
                                            long            size);
williamr@2
   362
#ifdef __SYMBIAN32__
williamr@2
   363
IMPORT_C
williamr@2
   364
#endif
williamr@2
   365
long dbus_connection_get_max_message_size  (DBusConnection *connection);
williamr@2
   366
#ifdef __SYMBIAN32__
williamr@2
   367
IMPORT_C
williamr@2
   368
#endif
williamr@2
   369
void dbus_connection_set_max_received_size (DBusConnection *connection,
williamr@2
   370
                                            long            size);
williamr@2
   371
#ifdef __SYMBIAN32__
williamr@2
   372
IMPORT_C
williamr@2
   373
#endif
williamr@2
   374
long dbus_connection_get_max_received_size (DBusConnection *connection);
williamr@2
   375
#ifdef __SYMBIAN32__
williamr@2
   376
IMPORT_C
williamr@2
   377
#endif
williamr@2
   378
long dbus_connection_get_outgoing_size     (DBusConnection *connection);
williamr@2
   379
williamr@2
   380
#ifdef __SYMBIAN32__
williamr@2
   381
IMPORT_C
williamr@2
   382
#endif
williamr@2
   383
DBusPreallocatedSend* dbus_connection_preallocate_send       (DBusConnection       *connection);
williamr@2
   384
#ifdef __SYMBIAN32__
williamr@2
   385
IMPORT_C
williamr@2
   386
#endif
williamr@2
   387
void                  dbus_connection_free_preallocated_send (DBusConnection       *connection,
williamr@2
   388
                                                              DBusPreallocatedSend *preallocated);
williamr@2
   389
#ifdef __SYMBIAN32__
williamr@2
   390
IMPORT_C
williamr@2
   391
#endif
williamr@2
   392
void                  dbus_connection_send_preallocated      (DBusConnection       *connection,
williamr@2
   393
                                                              DBusPreallocatedSend *preallocated,
williamr@2
   394
                                                              DBusMessage          *message,
williamr@2
   395
                                                              dbus_uint32_t        *client_serial);
williamr@2
   396
williamr@2
   397
williamr@2
   398
/* Object tree functionality */
williamr@2
   399
williamr@2
   400
/**
williamr@2
   401
 * Called when a #DBusObjectPathVTable is unregistered (or its connection is freed).
williamr@2
   402
 * Found in #DBusObjectPathVTable.
williamr@2
   403
 */
williamr@2
   404
typedef void              (* DBusObjectPathUnregisterFunction) (DBusConnection  *connection,
williamr@2
   405
                                                                void            *user_data);
williamr@2
   406
/**
williamr@2
   407
 * Called when a message is sent to a registered object path. Found in
williamr@2
   408
 * #DBusObjectPathVTable which is registered with dbus_connection_register_object_path()
williamr@2
   409
 * or dbus_connection_register_fallback().
williamr@2
   410
 */
williamr@2
   411
typedef DBusHandlerResult (* DBusObjectPathMessageFunction)    (DBusConnection  *connection,
williamr@2
   412
                                                                DBusMessage     *message,
williamr@2
   413
                                                                void            *user_data);
williamr@2
   414
williamr@2
   415
/**
williamr@2
   416
 * Virtual table that must be implemented to handle a portion of the
williamr@2
   417
 * object path hierarchy. Attach the vtable to a particular path using
williamr@2
   418
 * dbus_connection_register_object_path() or
williamr@2
   419
 * dbus_connection_register_fallback().
williamr@2
   420
 */
williamr@2
   421
struct DBusObjectPathVTable
williamr@2
   422
{
williamr@2
   423
  DBusObjectPathUnregisterFunction   unregister_function; /**< Function to unregister this handler */
williamr@2
   424
  DBusObjectPathMessageFunction      message_function; /**< Function to handle messages */
williamr@2
   425
  
williamr@2
   426
  void (* dbus_internal_pad1) (void *); /**< Reserved for future expansion */
williamr@2
   427
  void (* dbus_internal_pad2) (void *); /**< Reserved for future expansion */
williamr@2
   428
  void (* dbus_internal_pad3) (void *); /**< Reserved for future expansion */
williamr@2
   429
  void (* dbus_internal_pad4) (void *); /**< Reserved for future expansion */
williamr@2
   430
};
williamr@2
   431
williamr@2
   432
#ifdef __SYMBIAN32__
williamr@2
   433
IMPORT_C
williamr@2
   434
#endif
williamr@2
   435
dbus_bool_t dbus_connection_register_object_path   (DBusConnection              *connection,
williamr@2
   436
                                                    const char                  *path,
williamr@2
   437
                                                    const DBusObjectPathVTable  *vtable,
williamr@2
   438
                                                    void                        *user_data);
williamr@2
   439
#ifdef __SYMBIAN32__
williamr@2
   440
IMPORT_C
williamr@2
   441
#endif
williamr@2
   442
dbus_bool_t dbus_connection_register_fallback      (DBusConnection              *connection,
williamr@2
   443
                                                    const char                  *path,
williamr@2
   444
                                                    const DBusObjectPathVTable  *vtable,
williamr@2
   445
                                                    void                        *user_data);
williamr@2
   446
#ifdef __SYMBIAN32__
williamr@2
   447
IMPORT_C
williamr@2
   448
#endif
williamr@2
   449
dbus_bool_t dbus_connection_unregister_object_path (DBusConnection              *connection,
williamr@2
   450
                                                    const char                  *path);
williamr@2
   451
williamr@2
   452
#ifdef __SYMBIAN32__
williamr@2
   453
IMPORT_C
williamr@2
   454
#endif
williamr@2
   455
dbus_bool_t dbus_connection_get_object_path_data   (DBusConnection              *connection,
williamr@2
   456
                                                    const char                  *path,
williamr@2
   457
                                                    void                       **data_p);
williamr@2
   458
williamr@2
   459
#ifdef __SYMBIAN32__
williamr@2
   460
IMPORT_C
williamr@2
   461
#endif
williamr@2
   462
dbus_bool_t dbus_connection_list_registered        (DBusConnection              *connection,
williamr@2
   463
                                                    const char                  *parent_path,
williamr@2
   464
                                                    char                      ***child_entries);
williamr@2
   465
williamr@2
   466
#ifdef __SYMBIAN32__
williamr@2
   467
IMPORT_C
williamr@2
   468
#endif
williamr@2
   469
dbus_bool_t dbus_connection_get_unix_fd            (DBusConnection              *connection,
williamr@2
   470
                                                    int                         *fd);
williamr@2
   471
#ifdef __SYMBIAN32__
williamr@2
   472
IMPORT_C
williamr@2
   473
#endif
williamr@2
   474
dbus_bool_t dbus_connection_get_socket             (DBusConnection              *connection,
williamr@2
   475
                                                    int                         *fd);
williamr@2
   476
williamr@2
   477
/** @} */
williamr@2
   478
williamr@2
   479
williamr@2
   480
/**
williamr@2
   481
 * @addtogroup DBusWatch
williamr@2
   482
 * @{
williamr@2
   483
 */
williamr@2
   484
williamr@2
   485
#ifdef __SYMBIAN32__
williamr@2
   486
IMPORT_C
williamr@2
   487
#endif
williamr@2
   488
int          dbus_watch_get_fd      (DBusWatch        *watch);
williamr@2
   489
#ifdef __SYMBIAN32__
williamr@2
   490
IMPORT_C
williamr@2
   491
#endif
williamr@2
   492
unsigned int dbus_watch_get_flags   (DBusWatch        *watch);
williamr@2
   493
#ifdef __SYMBIAN32__
williamr@2
   494
IMPORT_C
williamr@2
   495
#endif
williamr@2
   496
void*        dbus_watch_get_data    (DBusWatch        *watch);
williamr@2
   497
#ifdef __SYMBIAN32__
williamr@2
   498
IMPORT_C
williamr@2
   499
#endif
williamr@2
   500
void         dbus_watch_set_data    (DBusWatch        *watch,
williamr@2
   501
                                     void             *data,
williamr@2
   502
                                     DBusFreeFunction  free_data_function);
williamr@2
   503
#ifdef __SYMBIAN32__
williamr@2
   504
IMPORT_C
williamr@2
   505
#endif
williamr@2
   506
dbus_bool_t  dbus_watch_handle      (DBusWatch        *watch,
williamr@2
   507
                                     unsigned int      flags);
williamr@2
   508
#ifdef __SYMBIAN32__
williamr@2
   509
IMPORT_C
williamr@2
   510
#endif
williamr@2
   511
dbus_bool_t  dbus_watch_get_enabled (DBusWatch        *watch);
williamr@2
   512
williamr@2
   513
/** @} */
williamr@2
   514
williamr@2
   515
/**
williamr@2
   516
 * @addtogroup DBusTimeout
williamr@2
   517
 * @{
williamr@2
   518
 */
williamr@2
   519
williamr@2
   520
#ifdef __SYMBIAN32__
williamr@2
   521
IMPORT_C
williamr@2
   522
#endif
williamr@2
   523
int         dbus_timeout_get_interval (DBusTimeout      *timeout);
williamr@2
   524
#ifdef __SYMBIAN32__
williamr@2
   525
IMPORT_C
williamr@2
   526
#endif
williamr@2
   527
void*       dbus_timeout_get_data     (DBusTimeout      *timeout);
williamr@2
   528
#ifdef __SYMBIAN32__
williamr@2
   529
IMPORT_C
williamr@2
   530
#endif
williamr@2
   531
void        dbus_timeout_set_data     (DBusTimeout      *timeout,
williamr@2
   532
                                       void             *data,
williamr@2
   533
                                       DBusFreeFunction  free_data_function);
williamr@2
   534
#ifdef __SYMBIAN32__
williamr@2
   535
IMPORT_C
williamr@2
   536
#endif
williamr@2
   537
dbus_bool_t dbus_timeout_handle       (DBusTimeout      *timeout);
williamr@2
   538
#ifdef __SYMBIAN32__
williamr@2
   539
IMPORT_C
williamr@2
   540
#endif
williamr@2
   541
dbus_bool_t dbus_timeout_get_enabled  (DBusTimeout      *timeout);
williamr@2
   542
williamr@2
   543
/** @} */
williamr@2
   544
williamr@2
   545
DBUS_END_DECLS
williamr@2
   546
williamr@2
   547
#endif /* DBUS_CONNECTION_H */