Repository : http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
commit 55fc7786972a084cfddec441b8b0c1bc8c0f649a Author: Daniel Kopecek dkopecek@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) {