File indexing completed on 2025-09-17 08:54:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
0026 #error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
0027 #endif
0028
0029 #ifndef DBUS_CONNECTION_H
0030 #define DBUS_CONNECTION_H
0031
0032 #include <dbus/dbus-errors.h>
0033 #include <dbus/dbus-macros.h>
0034 #include <dbus/dbus-memory.h>
0035 #include <dbus/dbus-message.h>
0036 #include <dbus/dbus-shared.h>
0037
0038 DBUS_BEGIN_DECLS
0039
0040
0041
0042
0043
0044
0045
0046 typedef struct DBusWatch DBusWatch;
0047
0048 typedef struct DBusTimeout DBusTimeout;
0049
0050 typedef struct DBusPreallocatedSend DBusPreallocatedSend;
0051
0052 typedef struct DBusPendingCall DBusPendingCall;
0053
0054 typedef struct DBusConnection DBusConnection;
0055
0056 typedef struct DBusObjectPathVTable DBusObjectPathVTable;
0057
0058
0059
0060
0061 typedef enum
0062 {
0063 DBUS_WATCH_READABLE = 1 << 0,
0064 DBUS_WATCH_WRITABLE = 1 << 1,
0065 DBUS_WATCH_ERROR = 1 << 2,
0066
0067
0068
0069
0070 DBUS_WATCH_HANGUP = 1 << 3
0071
0072
0073
0074
0075
0076 } DBusWatchFlags;
0077
0078
0079
0080
0081
0082 typedef enum
0083 {
0084 DBUS_DISPATCH_DATA_REMAINS,
0085 DBUS_DISPATCH_COMPLETE,
0086 DBUS_DISPATCH_NEED_MEMORY
0087 } DBusDispatchStatus;
0088
0089
0090
0091
0092
0093
0094 typedef dbus_bool_t (* DBusAddWatchFunction) (DBusWatch *watch,
0095 void *data);
0096
0097
0098
0099
0100 typedef void (* DBusWatchToggledFunction) (DBusWatch *watch,
0101 void *data);
0102
0103
0104
0105
0106 typedef void (* DBusRemoveWatchFunction) (DBusWatch *watch,
0107 void *data);
0108
0109
0110
0111
0112
0113 typedef dbus_bool_t (* DBusAddTimeoutFunction) (DBusTimeout *timeout,
0114 void *data);
0115
0116
0117
0118
0119
0120 typedef void (* DBusTimeoutToggledFunction) (DBusTimeout *timeout,
0121 void *data);
0122
0123
0124
0125
0126 typedef void (* DBusRemoveTimeoutFunction) (DBusTimeout *timeout,
0127 void *data);
0128
0129
0130
0131 typedef void (* DBusDispatchStatusFunction) (DBusConnection *connection,
0132 DBusDispatchStatus new_status,
0133 void *data);
0134
0135
0136
0137
0138 typedef void (* DBusWakeupMainFunction) (void *data);
0139
0140
0141
0142
0143
0144
0145
0146 typedef dbus_bool_t (* DBusAllowUnixUserFunction) (DBusConnection *connection,
0147 unsigned long uid,
0148 void *data);
0149
0150
0151
0152
0153
0154
0155
0156 typedef dbus_bool_t (* DBusAllowWindowsUserFunction) (DBusConnection *connection,
0157 const char *user_sid,
0158 void *data);
0159
0160
0161
0162
0163
0164
0165 typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending,
0166 void *user_data);
0167
0168
0169
0170
0171
0172 typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection,
0173 DBusMessage *message,
0174 void *user_data);
0175 DBUS_EXPORT
0176 DBusConnection* dbus_connection_open (const char *address,
0177 DBusError *error);
0178 DBUS_EXPORT
0179 DBusConnection* dbus_connection_open_private (const char *address,
0180 DBusError *error);
0181 DBUS_EXPORT
0182 DBusConnection* dbus_connection_ref (DBusConnection *connection);
0183 DBUS_EXPORT
0184 void dbus_connection_unref (DBusConnection *connection);
0185 DBUS_EXPORT
0186 void dbus_connection_close (DBusConnection *connection);
0187 DBUS_EXPORT
0188 dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection);
0189 DBUS_EXPORT
0190 dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection);
0191 DBUS_EXPORT
0192 dbus_bool_t dbus_connection_get_is_anonymous (DBusConnection *connection);
0193 DBUS_EXPORT
0194 char* dbus_connection_get_server_id (DBusConnection *connection);
0195 DBUS_EXPORT
0196 dbus_bool_t dbus_connection_can_send_type (DBusConnection *connection,
0197 int type);
0198
0199 DBUS_EXPORT
0200 void dbus_connection_set_exit_on_disconnect (DBusConnection *connection,
0201 dbus_bool_t exit_on_disconnect);
0202 DBUS_EXPORT
0203 void dbus_connection_flush (DBusConnection *connection);
0204 DBUS_EXPORT
0205 dbus_bool_t dbus_connection_read_write_dispatch (DBusConnection *connection,
0206 int timeout_milliseconds);
0207 DBUS_EXPORT
0208 dbus_bool_t dbus_connection_read_write (DBusConnection *connection,
0209 int timeout_milliseconds);
0210 DBUS_EXPORT
0211 DBusMessage* dbus_connection_borrow_message (DBusConnection *connection);
0212 DBUS_EXPORT
0213 void dbus_connection_return_message (DBusConnection *connection,
0214 DBusMessage *message);
0215 DBUS_EXPORT
0216 void dbus_connection_steal_borrowed_message (DBusConnection *connection,
0217 DBusMessage *message);
0218 DBUS_EXPORT
0219 DBusMessage* dbus_connection_pop_message (DBusConnection *connection);
0220 DBUS_EXPORT
0221 DBusDispatchStatus dbus_connection_get_dispatch_status (DBusConnection *connection);
0222 DBUS_EXPORT
0223 DBusDispatchStatus dbus_connection_dispatch (DBusConnection *connection);
0224 DBUS_EXPORT
0225 dbus_bool_t dbus_connection_has_messages_to_send (DBusConnection *connection);
0226 DBUS_EXPORT
0227 dbus_bool_t dbus_connection_send (DBusConnection *connection,
0228 DBusMessage *message,
0229 dbus_uint32_t *client_serial);
0230 DBUS_EXPORT
0231 dbus_bool_t dbus_connection_send_with_reply (DBusConnection *connection,
0232 DBusMessage *message,
0233 DBusPendingCall **pending_return,
0234 int timeout_milliseconds);
0235 DBUS_EXPORT
0236 DBusMessage * dbus_connection_send_with_reply_and_block (DBusConnection *connection,
0237 DBusMessage *message,
0238 int timeout_milliseconds,
0239 DBusError *error);
0240 DBUS_EXPORT
0241 dbus_bool_t dbus_connection_set_watch_functions (DBusConnection *connection,
0242 DBusAddWatchFunction add_function,
0243 DBusRemoveWatchFunction remove_function,
0244 DBusWatchToggledFunction toggled_function,
0245 void *data,
0246 DBusFreeFunction free_data_function);
0247 DBUS_EXPORT
0248 dbus_bool_t dbus_connection_set_timeout_functions (DBusConnection *connection,
0249 DBusAddTimeoutFunction add_function,
0250 DBusRemoveTimeoutFunction remove_function,
0251 DBusTimeoutToggledFunction toggled_function,
0252 void *data,
0253 DBusFreeFunction free_data_function);
0254 DBUS_EXPORT
0255 void dbus_connection_set_wakeup_main_function (DBusConnection *connection,
0256 DBusWakeupMainFunction wakeup_main_function,
0257 void *data,
0258 DBusFreeFunction free_data_function);
0259 DBUS_EXPORT
0260 void dbus_connection_set_dispatch_status_function (DBusConnection *connection,
0261 DBusDispatchStatusFunction function,
0262 void *data,
0263 DBusFreeFunction free_data_function);
0264 DBUS_EXPORT
0265 dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection,
0266 unsigned long *uid);
0267 DBUS_EXPORT
0268 dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection,
0269 unsigned long *pid);
0270 DBUS_EXPORT
0271 dbus_bool_t dbus_connection_get_adt_audit_session_data (DBusConnection *connection,
0272 void **data,
0273 dbus_int32_t *data_size);
0274 DBUS_EXPORT
0275 void dbus_connection_set_unix_user_function (DBusConnection *connection,
0276 DBusAllowUnixUserFunction function,
0277 void *data,
0278 DBusFreeFunction free_data_function);
0279 DBUS_EXPORT
0280 dbus_bool_t dbus_connection_get_windows_user (DBusConnection *connection,
0281 char **windows_sid_p);
0282 DBUS_EXPORT
0283 void dbus_connection_set_windows_user_function (DBusConnection *connection,
0284 DBusAllowWindowsUserFunction function,
0285 void *data,
0286 DBusFreeFunction free_data_function);
0287 DBUS_EXPORT
0288 void dbus_connection_set_allow_anonymous (DBusConnection *connection,
0289 dbus_bool_t value);
0290 DBUS_EXPORT
0291 void dbus_connection_set_builtin_filters_enabled (DBusConnection *connection,
0292 dbus_bool_t value);
0293 DBUS_EXPORT
0294 void dbus_connection_set_route_peer_messages (DBusConnection *connection,
0295 dbus_bool_t value);
0296
0297
0298
0299
0300 DBUS_EXPORT
0301 dbus_bool_t dbus_connection_add_filter (DBusConnection *connection,
0302 DBusHandleMessageFunction function,
0303 void *user_data,
0304 DBusFreeFunction free_data_function);
0305 DBUS_EXPORT
0306 void dbus_connection_remove_filter (DBusConnection *connection,
0307 DBusHandleMessageFunction function,
0308 void *user_data);
0309
0310
0311
0312 DBUS_EXPORT
0313 dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p);
0314 DBUS_EXPORT
0315 void dbus_connection_free_data_slot (dbus_int32_t *slot_p);
0316 DBUS_EXPORT
0317 dbus_bool_t dbus_connection_set_data (DBusConnection *connection,
0318 dbus_int32_t slot,
0319 void *data,
0320 DBusFreeFunction free_data_func);
0321 DBUS_EXPORT
0322 void* dbus_connection_get_data (DBusConnection *connection,
0323 dbus_int32_t slot);
0324
0325 DBUS_EXPORT
0326 void dbus_connection_set_change_sigpipe (dbus_bool_t will_modify_sigpipe);
0327
0328 DBUS_EXPORT
0329 void dbus_connection_set_max_message_size (DBusConnection *connection,
0330 long size);
0331 DBUS_EXPORT
0332 long dbus_connection_get_max_message_size (DBusConnection *connection);
0333 DBUS_EXPORT
0334 void dbus_connection_set_max_received_size (DBusConnection *connection,
0335 long size);
0336 DBUS_EXPORT
0337 long dbus_connection_get_max_received_size (DBusConnection *connection);
0338
0339 DBUS_EXPORT
0340 void dbus_connection_set_max_message_unix_fds (DBusConnection *connection,
0341 long n);
0342 DBUS_EXPORT
0343 long dbus_connection_get_max_message_unix_fds (DBusConnection *connection);
0344 DBUS_EXPORT
0345 void dbus_connection_set_max_received_unix_fds(DBusConnection *connection,
0346 long n);
0347 DBUS_EXPORT
0348 long dbus_connection_get_max_received_unix_fds(DBusConnection *connection);
0349
0350 DBUS_EXPORT
0351 long dbus_connection_get_outgoing_size (DBusConnection *connection);
0352 DBUS_EXPORT
0353 long dbus_connection_get_outgoing_unix_fds (DBusConnection *connection);
0354
0355 DBUS_EXPORT
0356 DBusPreallocatedSend* dbus_connection_preallocate_send (DBusConnection *connection);
0357 DBUS_EXPORT
0358 void dbus_connection_free_preallocated_send (DBusConnection *connection,
0359 DBusPreallocatedSend *preallocated);
0360 DBUS_EXPORT
0361 void dbus_connection_send_preallocated (DBusConnection *connection,
0362 DBusPreallocatedSend *preallocated,
0363 DBusMessage *message,
0364 dbus_uint32_t *client_serial);
0365
0366
0367
0368
0369
0370
0371
0372
0373 typedef void (* DBusObjectPathUnregisterFunction) (DBusConnection *connection,
0374 void *user_data);
0375
0376
0377
0378
0379
0380 typedef DBusHandlerResult (* DBusObjectPathMessageFunction) (DBusConnection *connection,
0381 DBusMessage *message,
0382 void *user_data);
0383
0384
0385
0386
0387
0388
0389
0390 struct DBusObjectPathVTable
0391 {
0392 DBusObjectPathUnregisterFunction unregister_function;
0393 DBusObjectPathMessageFunction message_function;
0394
0395 void (* dbus_internal_pad1) (void *);
0396 void (* dbus_internal_pad2) (void *);
0397 void (* dbus_internal_pad3) (void *);
0398 void (* dbus_internal_pad4) (void *);
0399 };
0400
0401 DBUS_EXPORT
0402 dbus_bool_t dbus_connection_try_register_object_path (DBusConnection *connection,
0403 const char *path,
0404 const DBusObjectPathVTable *vtable,
0405 void *user_data,
0406 DBusError *error);
0407
0408 DBUS_EXPORT
0409 dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection,
0410 const char *path,
0411 const DBusObjectPathVTable *vtable,
0412 void *user_data);
0413
0414 DBUS_EXPORT
0415 dbus_bool_t dbus_connection_try_register_fallback (DBusConnection *connection,
0416 const char *path,
0417 const DBusObjectPathVTable *vtable,
0418 void *user_data,
0419 DBusError *error);
0420
0421 DBUS_EXPORT
0422 dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection,
0423 const char *path,
0424 const DBusObjectPathVTable *vtable,
0425 void *user_data);
0426 DBUS_EXPORT
0427 dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection,
0428 const char *path);
0429
0430 DBUS_EXPORT
0431 dbus_bool_t dbus_connection_get_object_path_data (DBusConnection *connection,
0432 const char *path,
0433 void **data_p);
0434
0435 DBUS_EXPORT
0436 dbus_bool_t dbus_connection_list_registered (DBusConnection *connection,
0437 const char *parent_path,
0438 char ***child_entries);
0439
0440 DBUS_EXPORT
0441 dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection,
0442 int *fd);
0443 DBUS_EXPORT
0444 dbus_bool_t dbus_connection_get_socket (DBusConnection *connection,
0445 int *fd);
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469 static inline void
0470 dbus_clear_connection (DBusConnection **pointer_to_connection)
0471 {
0472 _dbus_clear_pointer_impl (DBusConnection, pointer_to_connection,
0473 dbus_connection_unref);
0474 }
0475
0476
0477
0478
0479
0480
0481
0482
0483
0484 #ifndef DBUS_DISABLE_DEPRECATED
0485 DBUS_EXPORT
0486 DBUS_DEPRECATED int dbus_watch_get_fd (DBusWatch *watch);
0487 #endif
0488
0489 DBUS_EXPORT
0490 int dbus_watch_get_unix_fd (DBusWatch *watch);
0491 DBUS_EXPORT
0492 int dbus_watch_get_socket (DBusWatch *watch);
0493 DBUS_EXPORT
0494 unsigned int dbus_watch_get_flags (DBusWatch *watch);
0495 DBUS_EXPORT
0496 void* dbus_watch_get_data (DBusWatch *watch);
0497 DBUS_EXPORT
0498 void dbus_watch_set_data (DBusWatch *watch,
0499 void *data,
0500 DBusFreeFunction free_data_function);
0501 DBUS_EXPORT
0502 dbus_bool_t dbus_watch_handle (DBusWatch *watch,
0503 unsigned int flags);
0504 DBUS_EXPORT
0505 dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch);
0506
0507
0508
0509
0510
0511
0512
0513
0514 DBUS_EXPORT
0515 int dbus_timeout_get_interval (DBusTimeout *timeout);
0516 DBUS_EXPORT
0517 void* dbus_timeout_get_data (DBusTimeout *timeout);
0518 DBUS_EXPORT
0519 void dbus_timeout_set_data (DBusTimeout *timeout,
0520 void *data,
0521 DBusFreeFunction free_data_function);
0522 DBUS_EXPORT
0523 dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout);
0524 DBUS_EXPORT
0525 dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout);
0526
0527
0528
0529 DBUS_END_DECLS
0530
0531 #endif