1/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2/* dbus-transport.h DBusTransport object (internal to D-BUS implementation)
3 *
4 * Copyright (C) 2002, 2004  Red Hat Inc.
5 *
6 * Licensed under the Academic Free License version 2.1
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21 *
22 */
23#ifndef DBUS_TRANSPORT_H
24#define DBUS_TRANSPORT_H
25
26#include <dbus/dbus-internals.h>
27#include <dbus/dbus-connection.h>
28#include <dbus/dbus-protocol.h>
29#include <dbus/dbus-address.h>
30
31DBUS_BEGIN_DECLS
32
33typedef struct DBusTransport DBusTransport;
34
35DBusTransport*     _dbus_transport_open                   (DBusAddressEntry           *entry,
36                                                           DBusError                  *error);
37DBusTransport*     _dbus_transport_ref                    (DBusTransport              *transport);
38void               _dbus_transport_unref                  (DBusTransport              *transport);
39void               _dbus_transport_disconnect             (DBusTransport              *transport);
40dbus_bool_t        _dbus_transport_get_is_connected       (DBusTransport              *transport);
41dbus_bool_t        _dbus_transport_get_is_authenticated   (DBusTransport              *transport);
42dbus_bool_t        _dbus_transport_get_is_anonymous       (DBusTransport              *transport);
43dbus_bool_t        _dbus_transport_can_pass_unix_fd       (DBusTransport              *transport);
44
45const char*        _dbus_transport_get_address            (DBusTransport              *transport);
46const char*        _dbus_transport_get_server_id          (DBusTransport              *transport);
47dbus_bool_t        _dbus_transport_handle_watch           (DBusTransport              *transport,
48                                                           DBusWatch                  *watch,
49                                                           unsigned int                condition);
50dbus_bool_t        _dbus_transport_set_connection         (DBusTransport              *transport,
51                                                           DBusConnection             *connection);
52void               _dbus_transport_do_iteration           (DBusTransport              *transport,
53                                                           unsigned int                flags,
54                                                           int                         timeout_milliseconds);
55DBusDispatchStatus _dbus_transport_get_dispatch_status    (DBusTransport              *transport);
56dbus_bool_t        _dbus_transport_queue_messages         (DBusTransport              *transport);
57
58void               _dbus_transport_set_max_message_size   (DBusTransport              *transport,
59                                                           long                        size);
60long               _dbus_transport_get_max_message_size   (DBusTransport              *transport);
61void               _dbus_transport_set_max_received_size  (DBusTransport              *transport,
62                                                           long                        size);
63long               _dbus_transport_get_max_received_size  (DBusTransport              *transport);
64
65void               _dbus_transport_set_max_message_unix_fds (DBusTransport              *transport,
66                                                             long                        n);
67long               _dbus_transport_get_max_message_unix_fds (DBusTransport              *transport);
68void               _dbus_transport_set_max_received_unix_fds(DBusTransport              *transport,
69                                                             long                        n);
70long               _dbus_transport_get_max_received_unix_fds(DBusTransport              *transport);
71
72dbus_bool_t        _dbus_transport_get_socket_fd          (DBusTransport              *transport,
73                                                           int                        *fd_p);
74dbus_bool_t        _dbus_transport_get_unix_user          (DBusTransport              *transport,
75                                                           unsigned long              *uid);
76dbus_bool_t        _dbus_transport_get_unix_process_id     (DBusTransport              *transport,
77                                                           unsigned long              *pid);
78dbus_bool_t        _dbus_transport_get_adt_audit_session_data (DBusTransport              *transport,
79                                                               void                      **data,
80                                                               int                        *data_size);
81void               _dbus_transport_set_unix_user_function (DBusTransport              *transport,
82                                                           DBusAllowUnixUserFunction   function,
83                                                           void                       *data,
84                                                           DBusFreeFunction            free_data_function,
85                                                           void                      **old_data,
86                                                           DBusFreeFunction           *old_free_data_function);
87dbus_bool_t        _dbus_transport_get_windows_user       (DBusTransport              *transport,
88                                                           char                      **windows_sid_p);
89void               _dbus_transport_set_windows_user_function (DBusTransport              *transport,
90                                                              DBusAllowWindowsUserFunction   function,
91                                                              void                       *data,
92                                                              DBusFreeFunction            free_data_function,
93                                                              void                      **old_data,
94                                                              DBusFreeFunction           *old_free_data_function);
95dbus_bool_t        _dbus_transport_set_auth_mechanisms    (DBusTransport              *transport,
96                                                           const char                **mechanisms);
97void               _dbus_transport_set_allow_anonymous    (DBusTransport              *transport,
98                                                           dbus_bool_t                 value);
99
100
101DBUS_END_DECLS
102
103#endif /* DBUS_TRANSPORT_H */
104