Hihi::Hihi(Message& msg)
{
- DBusMessageIter args;
- if (!dbus_message_iter_init(msg.get_message(), &args))
- {
+ DBusMessageIter* args = new DBusMessageIter();
+ if (!dbus_message_iter_init(msg.get_message(), args))
throw FatalException();
- }
iters.push_back(args);
}
Hihi::~Hihi()
{
+ delete iters.back();
iters.pop_back();
assert(iters.empty());
}
void
Hihi::open_recurse()
{
- DBusMessageIter iter2;
- dbus_message_iter_recurse(top(), &iter2);
+ DBusMessageIter* iter2 = new DBusMessageIter();
+ dbus_message_iter_recurse(top(), iter2);
iters.push_back(iter2);
}
void
Hihi::close_recurse()
{
+ delete iters.back();
iters.pop_back();
dbus_message_iter_next(top());
}
Hoho::Hoho(Message& msg)
{
- DBusMessageIter args;
- dbus_message_iter_init_append(msg.get_message(), &args);
+ DBusMessageIter* args = new DBusMessageIter();
+ dbus_message_iter_init_append(msg.get_message(), args);
iters.push_back(args);
}
Hoho::~Hoho()
{
+ delete iters.back();
iters.pop_back();
assert(iters.empty());
}
void
Hoho::open_struct()
{
- DBusMessageIter iter2;
- dbus_message_iter_open_container(top(), DBUS_TYPE_STRUCT, NULL, &iter2);
+ DBusMessageIter* iter2 = new DBusMessageIter();
+ if (!dbus_message_iter_open_container(top(), DBUS_TYPE_STRUCT, NULL, iter2))
+ throw FatalException();
iters.push_back(iter2);
}
void
Hoho::close_struct()
{
- DBusMessageIter iter2 = *top();
+ DBusMessageIter* iter2 = top();
iters.pop_back();
- dbus_message_iter_close_container(top(), &iter2);
+ if (!dbus_message_iter_close_container(top(), iter2))
+ throw FatalException();
}
void
Hoho::open_array(const char* signature)
{
- DBusMessageIter iter2;
- dbus_message_iter_open_container(top(), DBUS_TYPE_ARRAY, signature, &iter2);
+ DBusMessageIter* iter2 = new DBusMessageIter();
+ if (!dbus_message_iter_open_container(top(), DBUS_TYPE_ARRAY, signature, iter2))
+ throw FatalException();
iters.push_back(iter2);
}
void
Hoho::close_array()
{
- DBusMessageIter iter2 = *top();
+ DBusMessageIter* iter2 = top();
iters.pop_back();
- dbus_message_iter_close_container(top(), &iter2);
+ if (!dbus_message_iter_close_container(top(), iter2))
+ throw FatalException();
}
void
Hoho::open_dict_entry()
{
- DBusMessageIter iter2;
- dbus_message_iter_open_container(top(), DBUS_TYPE_DICT_ENTRY, 0, &iter2);
+ DBusMessageIter* iter2 = new DBusMessageIter();
+ if (!dbus_message_iter_open_container(top(), DBUS_TYPE_DICT_ENTRY, 0, iter2))
+ throw FatalException();
iters.push_back(iter2);
}
void
Hoho::close_dict_entry()
{
- DBusMessageIter iter2 = *top();
+ DBusMessageIter* iter2 = top();
iters.pop_back();
- dbus_message_iter_close_container(top(), &iter2);
+ if (!dbus_message_iter_close_container(top(), iter2))
+ throw FatalException();
}
operator<<(Hoho& hoho, bool data)
{
dbus_bool_t tmp = data;
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_BOOLEAN, &tmp);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_BOOLEAN, &tmp))
+ throw FatalException();
return hoho;
}
Hoho&
operator<<(Hoho& hoho, dbus_uint16_t data)
{
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT16, &data);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT16, &data))
+ throw FatalException();
return hoho;
}
Hoho&
operator<<(Hoho& hoho, dbus_uint32_t data)
{
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT32, &data);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT32, &data))
+ throw FatalException();
return hoho;
}
Hoho&
operator<<(Hoho& hoho, time_t data)
{
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT32, &data);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_UINT32, &data))
+ throw FatalException();
return hoho;
}
Hoho&
operator<<(Hoho& hoho, const char* data)
{
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_STRING, &data);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_STRING, &data))
+ throw FatalException();
return hoho;
}
{
string tmp = hoho.escape(data);
const char* p = tmp.c_str();
- dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_STRING, &p);
+ if (!dbus_message_iter_append_basic(hoho.top(), DBUS_TYPE_STRING, &p))
+ throw FatalException();
return hoho;
}