edelib
1.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
edelib
EdbusMessage.h
1
/*
2
* $Id: EdbusMessage.h 3401 2012-08-29 07:57:30Z karijes $
3
*
4
* D-BUS stuff
5
* Copyright (c) 2008 edelib authors
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef __EDELIB_EDBUSMESSAGE_H__
22
#define __EDELIB_EDBUSMESSAGE_H__
23
24
#include "List.h"
25
#include "EdbusData.h"
26
27
struct
DBusMessage;
28
29
EDELIB_NS_BEGIN
30
31
class
EdbusConnection;
32
struct
EdbusMessageImpl;
33
104
class
EDELIB_API
EdbusMessage
{
105
private
:
106
friend
class
EdbusConnection
;
107
108
EdbusMessageImpl* dm;
109
list<EdbusData>
msg_content;
110
111
void
from_dbus_message(DBusMessage* m);
112
DBusMessage* to_dbus_message(
void
)
const
;
113
114
E_DISABLE_CLASS_COPY
(
EdbusMessage
)
115
public
:
119
typedef
list<EdbusData>::iterator
iterator
;
120
124
typedef
list<EdbusData>::const_iterator
const_iterator
;
125
131
EdbusMessage
() : dm(NULL) { }
132
137
EdbusMessage
(DBusMessage* msg);
138
142
~
EdbusMessage
();
143
151
void
create_signal(
const
char
* path,
const
char
* interface,
const
char
* name);
152
161
void
create_method_call(
const
char
* service,
const
char
* path,
const
char
* interface,
const
char
* method);
162
168
void
create_reply(
const
EdbusMessage
& replying_to);
169
176
void
create_error_reply(
const
EdbusMessage
& replying_to,
const
char
* errmsg);
177
186
void
clear_all(
void
);
187
191
bool
is_signal(
void
);
192
196
bool
is_method_call(
void
);
197
201
bool
is_error_reply(
const
char
* errmsg);
202
207
void
path(
const
char
* np);
208
213
const
char
* path(
void
)
const
;
214
219
void
interface(
const
char
* ni);
220
225
const
char
* interface(
void
)
const
;
226
236
void
destination(
const
char
* nd);
237
242
const
char
* destination(
void
)
const
;
243
250
void
member(
const
char
* nm);
251
256
const
char
* member(
void
)
const
;
257
266
void
sender(
const
char
* ns);
267
276
const
char
* sender(
void
)
const
;
277
287
const
char
* signature(
void
)
const
;
288
292
void
append
(
const
EdbusData
& data) { msg_content.push_back(data); }
293
297
iterator
begin
(
void
) {
return
msg_content.begin(); }
298
302
const_iterator
begin
(
void
)
const
{
return
msg_content.begin(); }
303
308
iterator
end
(
void
) {
return
msg_content.end(); }
309
314
const_iterator
end
(
void
)
const
{
return
msg_content.end(); }
315
319
unsigned
int
size
(
void
)
const
{
return
msg_content.size(); }
320
};
321
331
inline
EdbusMessage
&
operator<<
(
EdbusMessage
& m,
const
EdbusData
& val) {
332
m.
append
(val);
333
return
m;
334
}
335
336
EDELIB_NS_END
337
#endif
Generated on Tue Mar 17 2015 09:22:08 for edelib by
1.8.2