internalerror.h
Go to the documentation of this file.
1 /*
2  *
3  * D-Bus++ - C++ bindings for D-Bus
4  *
5  * Copyright (C) 2005-2007 Paolo Durante <shackan@gmail.com>
6  *
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library 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 GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21  *
22  */
23 
24 
25 #ifndef __DBUSXX_INTERNALERROR_H
26 #define __DBUSXX_INTERNALERROR_H
27 
28 #ifdef HAVE_CONFIG_H
29 #include <config.h>
30 #endif
31 
32 #include <dbus-c++/error.h>
33 
34 #include <dbus/dbus.h>
35 
36 namespace DBus
37 {
38 
40 {
41  DBusError error;
42 
44  {
45  dbus_error_init(&error);
46  }
47 
48  explicit InternalError(DBusError *e)
49  {
50  dbus_error_init(&error);
51  dbus_move_error(e, &error);
52  }
53 
55  {
56  dbus_error_init(&error);
57  dbus_move_error(const_cast<DBusError *>(&(ie.error)), &error);
58  }
59 
61  {
62  dbus_error_free(&error);
63  }
64 
65  operator DBusError *()
66  {
67  return &error;
68  }
69 
70  operator bool()
71  {
72  return dbus_error_is_set(&error);
73  }
74 };
75 
76 } /* namespace DBus */
77 
78 #endif//__DBUSXX_INTERNALERROR_H
#define DXXAPI
Definition: api.h:36
InternalError(const InternalError &ie)
Definition: internalerror.h:54
InternalError(DBusError *e)
Definition: internalerror.h:48