D-Bus
1.12.16
Main Page
Related Pages
Modules
Data Structures
Files
File List
dbus
dbus-marshal-recursive.h
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2
/* dbus-marshal-recursive.h Marshalling routines for recursive types
3
*
4
* Copyright (C) 2004, 2005 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
24
#ifndef DBUS_MARSHAL_RECURSIVE_H
25
#define DBUS_MARSHAL_RECURSIVE_H
26
27
#include <dbus/dbus-protocol.h>
28
#include <dbus/dbus-list.h>
29
30
typedef
struct
DBusTypeReader
DBusTypeReader
;
31
typedef
struct
DBusTypeWriter
DBusTypeWriter
;
32
typedef
struct
DBusTypeReaderClass
DBusTypeReaderClass
;
33
typedef
struct
DBusArrayLenFixup
DBusArrayLenFixup
;
34
39
struct
DBusTypeReader
40
{
41
dbus_uint32_t
byte_order
: 8;
43
dbus_uint32_t
finished
: 1;
46
dbus_uint32_t
array_len_offset
: 3;
47
const
DBusString
*
type_str
;
48
int
type_pos
;
49
const
DBusString
*
value_str
;
50
int
value_pos
;
52
const
DBusTypeReaderClass
*
klass
;
53
union
54
{
55
struct
{
56
int
start_pos
;
57
} array;
58
}
u
;
59
};
60
64
struct
DBusTypeWriter
65
{
66
dbus_uint32_t
byte_order
: 8;
68
dbus_uint32_t
container_type
: 8;
70
dbus_uint32_t
type_pos_is_expectation
: 1;
72
dbus_uint32_t
enabled
: 1;
74
DBusString
*
type_str
;
75
int
type_pos
;
76
DBusString
*
value_str
;
77
int
value_pos
;
79
union
80
{
81
struct
{
82
int
start_pos
;
83
int
len_pos
;
84
int
element_type_pos
;
85
} array;
86
}
u
;
87
};
88
93
struct
DBusArrayLenFixup
94
{
95
int
len_pos_in_reader
;
96
int
new_len
;
97
};
98
99
DBUS_PRIVATE_EXPORT
100
void
_dbus_type_reader_init
(
DBusTypeReader
*reader,
101
int
byte_order,
102
const
DBusString
*type_str,
103
int
type_pos,
104
const
DBusString
*value_str,
105
int
value_pos);
106
DBUS_PRIVATE_EXPORT
107
void
_dbus_type_reader_init_types_only
(
DBusTypeReader
*reader,
108
const
DBusString
*type_str,
109
int
type_pos);
110
DBUS_PRIVATE_EXPORT
111
int
_dbus_type_reader_get_current_type
(
const
DBusTypeReader
*reader);
112
DBUS_PRIVATE_EXPORT
113
int
_dbus_type_reader_get_element_type
(
const
DBusTypeReader
*reader);
114
int
_dbus_type_reader_get_value_pos
(
const
DBusTypeReader
*reader);
115
DBUS_PRIVATE_EXPORT
116
void
_dbus_type_reader_read_basic
(
const
DBusTypeReader
*reader,
117
void
*value);
118
int
_dbus_type_reader_get_array_length
(
const
DBusTypeReader
*reader);
119
DBUS_PRIVATE_EXPORT
120
void
_dbus_type_reader_read_fixed_multi
(
const
DBusTypeReader
*reader,
121
void
*value,
122
int
*n_elements);
123
void
_dbus_type_reader_read_raw
(
const
DBusTypeReader
*reader,
124
const
unsigned
char
**value_location);
125
DBUS_PRIVATE_EXPORT
126
void
_dbus_type_reader_recurse
(
DBusTypeReader
*reader,
127
DBusTypeReader
*subreader);
128
DBUS_PRIVATE_EXPORT
129
dbus_bool_t
_dbus_type_reader_next
(
DBusTypeReader
*reader);
130
dbus_bool_t
_dbus_type_reader_has_next
(
const
DBusTypeReader
*reader);
131
DBUS_PRIVATE_EXPORT
132
void
_dbus_type_reader_get_signature
(
const
DBusTypeReader
*reader,
133
const
DBusString
**str_p,
134
int
*start_p,
135
int
*len_p);
136
DBUS_PRIVATE_EXPORT
137
dbus_bool_t
_dbus_type_reader_set_basic
(
DBusTypeReader
*reader,
138
const
void
*value,
139
const
DBusTypeReader
*realign_root);
140
DBUS_PRIVATE_EXPORT
141
dbus_bool_t
_dbus_type_reader_delete
(
DBusTypeReader
*reader,
142
const
DBusTypeReader
*realign_root);
143
144
dbus_bool_t
_dbus_type_reader_equal_values (
const
DBusTypeReader
*lhs,
145
const
DBusTypeReader
*rhs);
146
147
void
_dbus_type_signature_next
(
const
char
*signature,
148
int
*type_pos);
149
150
DBUS_PRIVATE_EXPORT
151
void
_dbus_type_writer_init
(
DBusTypeWriter
*writer,
152
int
byte_order,
153
DBusString
*type_str,
154
int
type_pos,
155
DBusString
*value_str,
156
int
value_pos);
157
void
_dbus_type_writer_init_types_delayed
(
DBusTypeWriter
*writer,
158
int
byte_order,
159
DBusString
*value_str,
160
int
value_pos);
161
void
_dbus_type_writer_add_types
(
DBusTypeWriter
*writer,
162
DBusString
*type_str,
163
int
type_pos);
164
void
_dbus_type_writer_remove_types
(
DBusTypeWriter
*writer);
165
DBUS_PRIVATE_EXPORT
166
void
_dbus_type_writer_init_values_only
(
DBusTypeWriter
*writer,
167
int
byte_order,
168
const
DBusString
*type_str,
169
int
type_pos,
170
DBusString
*value_str,
171
int
value_pos);
172
DBUS_PRIVATE_EXPORT
173
dbus_bool_t
_dbus_type_writer_write_basic
(
DBusTypeWriter
*writer,
174
int
type,
175
const
void
*value);
176
DBUS_PRIVATE_EXPORT
177
dbus_bool_t
_dbus_type_writer_write_fixed_multi
(
DBusTypeWriter
*writer,
178
int
element_type,
179
const
void
*value,
180
int
n_elements);
181
DBUS_PRIVATE_EXPORT
182
dbus_bool_t
_dbus_type_writer_recurse
(
DBusTypeWriter
*writer,
183
int
container_type,
184
const
DBusString
*contained_type,
185
int
contained_type_start,
186
DBusTypeWriter
*sub);
187
DBUS_PRIVATE_EXPORT
188
dbus_bool_t
_dbus_type_writer_unrecurse
(
DBusTypeWriter
*writer,
189
DBusTypeWriter
*sub);
190
dbus_bool_t
_dbus_type_writer_append_array
(
DBusTypeWriter
*writer,
191
const
DBusString
*contained_type,
192
int
contained_type_start,
193
DBusTypeWriter
*sub);
194
DBUS_PRIVATE_EXPORT
195
dbus_bool_t
_dbus_type_writer_write_reader
(
DBusTypeWriter
*writer,
196
DBusTypeReader
*reader);
197
198
199
#endif
/* DBUS_MARSHAL_RECURSIVE_H */
Generated by
1.8.3.1