%attribute string "*",
%attribute dictionary "*" {
- %attribute string "service",
+ %attribute dictionary "templates" {
+ %attribute string "*"
+ },
%attribute string "short_name",
%attribute dictionary "notifications" {
%attribute string "*",
%attribute dictionary "*" {
- %require "notification",
- %attribute string "notification",
+ %attribute dictionary "templates" {
+ %attribute string "*"
+ },
%attribute dictionary "macros" {
%attribute string "*"
} else if (svcdesc.IsObjectType<Dictionary>()) {
Dictionary::Ptr service = svcdesc;
- String parent = service->Get("service");
- if (parent.IsEmpty())
- parent = svcname;
-
- builder->AddParent(parent);
+ Dictionary::Ptr templates = service->Get("templates");
+
+ if (templates) {
+ String tmpl;
+ BOOST_FOREACH(tie(tuples::ignore, tmpl), templates) {
+ builder->AddParent(tmpl);
+ }
+ } else {
+ builder->AddParent(svcname);
+ }
CopyServiceAttributes<true>(service, builder);
} else {
} else if (nfcdesc.IsObjectType<Dictionary>()) {
Dictionary::Ptr notification = nfcdesc;
- String parent = notification->Get("notification");
- if (parent.IsEmpty())
- parent = nfcname;
-
- builder->AddParent(parent);
+ Dictionary::Ptr templates = notification->Get("templates");
+
+ if (templates) {
+ String tmpl;
+ BOOST_FOREACH(tie(tuples::ignore, tmpl), templates) {
+ builder->AddParent(tmpl);
+ }
+ } else {
+ builder->AddParent(nfcname);
+ }
CopyNotificationAttributes(notification, builder);
} else {