Repository :
http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
---------------------------------------------------------------
commit 55fc7786972a084cfddec441b8b0c1bc8c0f649a
Author: Daniel Kopecek <dkopecek(a)redhat.com>
Date: Mon Oct 6 14:01:57 2014 +0200
Extended the DBusResultBuilder with addBuilder method
---------------------------------------------------------------
src/Daemon/DBus.hpp | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/Daemon/DBus.hpp b/src/Daemon/DBus.hpp
index dde5ec7..8fcd859 100644
--- a/src/Daemon/DBus.hpp
+++ b/src/Daemon/DBus.hpp
@@ -209,7 +209,6 @@ namespace firewalld
DBusResultBuilder& operator=(const T& rhs)
{
_basic = Glib::Variant<T>::create(rhs);
- //_basic = vval.gobj();
_value_type = ValueType::Basic;
return *this;
}
@@ -217,7 +216,6 @@ namespace firewalld
template<typename T>
DBusResultBuilder& operator<<(const T& rhs)
{
- Glib::Variant<T> vval = Glib::Variant<T>::create(rhs);
DBusResultBuilder* builder = new DBusResultBuilder();
*builder = rhs;
_array.push_back(builder);
@@ -225,6 +223,21 @@ namespace firewalld
return *this;
}
+ DBusResultBuilder& addBuilder()
+ {
+ switch(_value_type) {
+ case ValueType::Array:
+ case ValueType::List:
+ break;
+ default:
+ throw std::runtime_error("Invalid usage of addBuilder() method");
+ }
+
+ DBusResultBuilder* builder = new DBusResultBuilder();
+ _array.push_back(builder);
+ return *builder;
+ }
+
DBusResultBuilder& operator[](int index)
{
if (_value_type == ValueType::Array || _value_type == ValueType::Unknown) {