summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2017-08-11 13:16:28 -0500
committerMatthew Barth <msbarth@us.ibm.com>2017-08-14 11:23:45 -0500
commitbe25083d3d74310ecd1024a3e7986341f4d3c549 (patch)
tree1a52749c6b59672870b1b63eff6ca79e6086af11
parentbc65160987751be9cc0070284395ec1d752de0f1 (diff)
downloadphosphor-fan-presence-be25083d3d74310ecd1024a3e7986341f4d3c549.tar.gz
phosphor-fan-presence-be25083d3d74310ecd1024a3e7986341f4d3c549.zip
Add interfacesAdded subscriptions to groups
For each group in an event, subscribe to the interfacesAdded signals in the case where the member(s) of a group may or may not exist when initialized. Additionally, updated to use the propertiesChanged function to remove repetitive property change subscription lines generated. Change-Id: I52b0cd839383ebb90e93a81b5bac02ee7c4f44b2 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
-rwxr-xr-xcontrol/gen-fan-zone-defs.py35
1 files changed, 22 insertions, 13 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index ea05a0f..45ca774 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -115,16 +115,27 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
std::vector<PropertyChange>{
%for s in event['signal']:
PropertyChange{
- interface("org.freedesktop.DBus.Properties") +
- member("PropertiesChanged") +
- type::signal() +
- path("${s['path']}") +
- arg0namespace("${s['interface']}"),
+ interfacesAdded("${s['obj_path']}"),
+ make_handler(objectSignal<${s['type']}>(
+ "${s['path']}",
+ "${s['interface']}",
+ "${s['property']}",
+ handler::setProperty<${s['type']}>(
+ "${s['path']}",
+ "${s['interface']}",
+ "${s['property']}"
+ )
+ ))
+ },
+ PropertyChange{
+ propertiesChanged(
+ "${s['path']}",
+ "${s['interface']}"),
make_handler(propertySignal<${s['type']}>(
"${s['interface']}",
"${s['property']}",
handler::setProperty<${s['type']}>(
- "${s['member']}",
+ "${s['path']}",
"${s['interface']}",
"${s['property']}"
)
@@ -151,11 +162,9 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
))
},
PropertyChange{
- interface("org.freedesktop.DBus.Properties") +
- member("PropertiesChanged") +
- type::signal() +
- path("${s['path']}") +
- arg0namespace("${s['interface']}"),
+ propertiesChanged(
+ "${s['path']}",
+ "${s['interface']}"),
make_handler(propertySignal<${s['type']}>(
"${s['interface']}",
"${s['property']}",
@@ -293,7 +302,7 @@ def getEventsInZone(zone_num, zone_conditions, events_data):
if g['name'] == e['group'])
for member in groups['members']:
members = {}
- members['type'] = groups['type']
+ members['obj_path'] = groups['type']
members['name'] = (groups['type'] +
member)
members['interface'] = e['interface']
@@ -333,11 +342,11 @@ def getEventsInZone(zone_num, zone_conditions, events_data):
signal = []
for path in group:
signals = {}
+ signals['obj_path'] = path['obj_path']
signals['path'] = path['name']
signals['interface'] = e['interface']
signals['property'] = e['property']['name']
signals['type'] = e['property']['type']
- signals['member'] = path['name']
signal.append(signals)
event['signal'] = signal
OpenPOWER on IntegriCloud