match: Add additional convenience match rules

Add interfaces removed.
Add properties changed.
Add versions of above that take a path argument.

Change-Id: I918365a25ca9a9b30c5087de08b4c90e2f15eca3
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/sdbusplus/bus/match.hpp b/sdbusplus/bus/match.hpp
index dc84723..2e7e114 100644
--- a/sdbusplus/bus/match.hpp
+++ b/sdbusplus/bus/match.hpp
@@ -139,6 +139,32 @@
            "member='InterfacesAdded',"s;
 }
 
+inline auto interfacesRemoved()
+{
+    return "type='signal',"
+           "interface='org.freedesktop.DBus.ObjectManager',"
+           "member='InterfacesRemoved',"s;
+}
+
+inline auto interfacesAdded(const std::string& p)
+{
+    return interfacesAdded() + path(p);
+}
+
+inline auto interfacesRemoved(const std::string& p)
+{
+    return interfacesRemoved() + path(p);
+}
+
+inline auto propertiesChanged(const std::string& p, const std::string& i)
+{
+    return type::signal() +
+           path(p) +
+           member("PropertiesChanged"s) +
+           interface("org.freedesktop.DBus.Properties"s) +
+           argN(0, i);
+}
+
 } // namespace rules
 } // namespace match