D-Bus
1.12.16
Main Page
Related Pages
Modules
Data Structures
Files
File List
dbus
dbus-transport-protected.h
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2
/* dbus-transport-protected.h Used by subclasses of 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_PROTECTED_H
24
#define DBUS_TRANSPORT_PROTECTED_H
25
26
#include <dbus/dbus-internals.h>
27
#include <dbus/dbus-errors.h>
28
#include <dbus/dbus-transport.h>
29
#include <dbus/dbus-message-internal.h>
30
#include <dbus/dbus-auth.h>
31
#include <dbus/dbus-resources.h>
32
33
DBUS_BEGIN_DECLS
34
35
typedef
struct
DBusTransportVTable
DBusTransportVTable
;
36
41
struct
DBusTransportVTable
42
{
43
void (*
finalize
) (
DBusTransport
*transport);
46
dbus_bool_t
(*
handle_watch
) (
DBusTransport
*transport,
47
DBusWatch
*watch,
48
unsigned
int
flags);
53
void (*
disconnect
) (
DBusTransport
*transport);
56
dbus_bool_t
(*
connection_set
) (
DBusTransport
*transport);
59
void (*
do_iteration
) (
DBusTransport
*transport,
60
unsigned
int
flags,
61
int
timeout_milliseconds);
66
void (*
live_messages_changed
) (
DBusTransport
*transport);
69
dbus_bool_t
(*
get_socket_fd
) (
DBusTransport
*transport,
70
DBusSocket
*fd_p);
72
};
73
80
struct
DBusTransport
81
{
82
int
refcount
;
84
const
DBusTransportVTable
*
vtable
;
86
DBusConnection
*
connection
;
88
DBusMessageLoader
*
loader
;
90
DBusAuth
*
auth
;
92
DBusCredentials
*
credentials
;
94
long
max_live_messages_size
;
95
long
max_live_messages_unix_fds
;
97
DBusCounter
*
live_messages
;
99
char
*
address
;
101
char
*
expected_guid
;
103
DBusAllowUnixUserFunction
unix_user_function
;
104
void
*
unix_user_data
;
106
DBusFreeFunction
free_unix_user_data
;
108
DBusAllowWindowsUserFunction
windows_user_function
;
109
void
*
windows_user_data
;
111
DBusFreeFunction
free_windows_user_data
;
113
unsigned
int
disconnected
: 1;
114
unsigned
int
authenticated
: 1;
115
unsigned
int
send_credentials_pending
: 1;
116
unsigned
int
receive_credentials_pending
: 1;
117
unsigned
int
is_server
: 1;
118
unsigned
int
unused_bytes_recovered
: 1;
119
unsigned
int
allow_anonymous
: 1;
120
};
121
122
dbus_bool_t
_dbus_transport_init_base
(
DBusTransport
*transport,
123
const
DBusTransportVTable
*vtable,
124
const
DBusString
*server_guid,
125
const
DBusString
*address);
126
void
_dbus_transport_finalize_base
(
DBusTransport
*transport);
127
128
129
typedef
enum
130
{
131
DBUS_TRANSPORT_OPEN_NOT_HANDLED,
132
DBUS_TRANSPORT_OPEN_OK,
133
DBUS_TRANSPORT_OPEN_BAD_ADDRESS,
134
DBUS_TRANSPORT_OPEN_DID_NOT_CONNECT
135
} DBusTransportOpenResult;
136
137
DBusTransportOpenResult
_dbus_transport_open_platform_specific
(
DBusAddressEntry
*entry,
138
DBusTransport
**transport_p,
139
DBusError
*error);
140
141
#define DBUS_TRANSPORT_CAN_SEND_UNIX_FD(x) \
142
_dbus_auth_get_unix_fd_negotiated((x)->auth)
143
144
DBUS_END_DECLS
145
146
#endif
/* DBUS_TRANSPORT_PROTECTED_H */
Generated by
1.8.3.1