D-Bus
1.4.10
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
void
_dbus_type_reader_init
(
DBusTypeReader
*reader,
100
int
byte_order,
101
const
DBusString
*type_str,
102
int
type_pos,
103
const
DBusString
*value_str,
104
int
value_pos);
105
void
_dbus_type_reader_init_types_only
(
DBusTypeReader
*reader,
106
const
DBusString
*type_str,
107
int
type_pos);
108
int
_dbus_type_reader_get_current_type
(
const
DBusTypeReader
*reader);
109
int
_dbus_type_reader_get_element_type
(
const
DBusTypeReader
*reader);
110
int
_dbus_type_reader_get_value_pos
(
const
DBusTypeReader
*reader);
111
void
_dbus_type_reader_read_basic
(
const
DBusTypeReader
*reader,
112
void
*value);
113
int
_dbus_type_reader_get_array_length
(
const
DBusTypeReader
*reader);
114
void
_dbus_type_reader_read_fixed_multi
(
const
DBusTypeReader
*reader,
115
void
*value,
116
int
*n_elements);
117
void
_dbus_type_reader_read_raw
(
const
DBusTypeReader
*reader,
118
const
unsigned
char
**value_location);
119
void
_dbus_type_reader_recurse
(
DBusTypeReader
*reader,
120
DBusTypeReader
*subreader);
121
dbus_bool_t
_dbus_type_reader_next
(
DBusTypeReader
*reader);
122
dbus_bool_t
_dbus_type_reader_has_next
(
const
DBusTypeReader
*reader);
123
void
_dbus_type_reader_get_signature
(
const
DBusTypeReader
*reader,
124
const
DBusString
**str_p,
125
int
*start_p,
126
int
*len_p);
127
dbus_bool_t
_dbus_type_reader_set_basic
(
DBusTypeReader
*reader,
128
const
void
*value,
129
const
DBusTypeReader
*realign_root);
130
dbus_bool_t
_dbus_type_reader_delete
(
DBusTypeReader
*reader,
131
const
DBusTypeReader
*realign_root);
132
dbus_bool_t
_dbus_type_reader_greater_than
(
const
DBusTypeReader
*lhs,
133
const
DBusTypeReader
*rhs);
134
135
dbus_bool_t
_dbus_type_reader_equal_values (
const
DBusTypeReader
*lhs,
136
const
DBusTypeReader
*rhs);
137
138
void
_dbus_type_signature_next
(
const
char
*signature,
139
int
*type_pos);
140
141
void
_dbus_type_writer_init
(
DBusTypeWriter
*writer,
142
int
byte_order,
143
DBusString
*type_str,
144
int
type_pos,
145
DBusString
*value_str,
146
int
value_pos);
147
void
_dbus_type_writer_init_types_delayed
(
DBusTypeWriter
*writer,
148
int
byte_order,
149
DBusString
*value_str,
150
int
value_pos);
151
void
_dbus_type_writer_add_types
(
DBusTypeWriter
*writer,
152
DBusString
*type_str,
153
int
type_pos);
154
void
_dbus_type_writer_remove_types
(
DBusTypeWriter
*writer);
155
void
_dbus_type_writer_init_values_only
(
DBusTypeWriter
*writer,
156
int
byte_order,
157
const
DBusString
*type_str,
158
int
type_pos,
159
DBusString
*value_str,
160
int
value_pos);
161
dbus_bool_t
_dbus_type_writer_write_basic
(
DBusTypeWriter
*writer,
162
int
type,
163
const
void
*value);
164
dbus_bool_t
_dbus_type_writer_write_fixed_multi
(
DBusTypeWriter
*writer,
165
int
element_type,
166
const
void
*value,
167
int
n_elements);
168
dbus_bool_t
_dbus_type_writer_recurse
(
DBusTypeWriter
*writer,
169
int
container_type,
170
const
DBusString
*contained_type,
171
int
contained_type_start,
172
DBusTypeWriter
*sub);
173
dbus_bool_t
_dbus_type_writer_unrecurse
(
DBusTypeWriter
*writer,
174
DBusTypeWriter
*sub);
175
dbus_bool_t
_dbus_type_writer_append_array
(
DBusTypeWriter
*writer,
176
const
DBusString
*contained_type,
177
int
contained_type_start,
178
DBusTypeWriter
*sub);
179
dbus_bool_t
_dbus_type_writer_write_reader
(
DBusTypeWriter
*writer,
180
DBusTypeReader
*reader);
181
dbus_bool_t
_dbus_type_writer_write_reader_partial
(
DBusTypeWriter
*writer,
182
DBusTypeReader
*reader,
183
const
DBusTypeReader
*start_after,
184
int
start_after_new_pos,
185
int
start_after_new_len,
186
DBusList
**fixups);
187
void
_dbus_type_writer_set_enabled
(
DBusTypeWriter
*writer,
188
dbus_bool_t
enabled);
189
190
191
#endif
/* DBUS_MARSHAL_RECURSIVE_H */
Generated by
1.8.1.1