summaryrefslogtreecommitdiff
path: root/src/lib/dkdm_wrapper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dkdm_wrapper.cc')
-rw-r--r--src/lib/dkdm_wrapper.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc
index 532bbb314..f5eb435f6 100644
--- a/src/lib/dkdm_wrapper.cc
+++ b/src/lib/dkdm_wrapper.cc
@@ -111,3 +111,23 @@ DKDMGroup::remove (shared_ptr<DKDMBase> child)
}
}
}
+
+
+bool
+DKDMGroup::contains(string dkdm_id) const
+{
+ for (auto child: _children) {
+ if (auto child_group = dynamic_pointer_cast<DKDMGroup>(child)) {
+ if (child_group->contains(dkdm_id)) {
+ return true;
+ }
+ } else if (auto child_dkdm = dynamic_pointer_cast<DKDM>(child)) {
+ if (child_dkdm->dkdm().id() == dkdm_id) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+