+ A Peer service belongs to the process that registers
+ it, thus if that process dies, its Peer services will
+ be destroyed as well.
+
+ The specification dict follows the format described
+ in the Peer API document.
+
+ ConnMan will be able to determine in most cases
+ whether to be the P2P Group Owner or not. If the
+ service for some reason must belong to a group that
+ this device manages, the "master" property can be
+ set. Do not enable the "master" property unless it
+ is absolutely sure that this is needed for the
+ provided peer service.
+
+ Possible Errors: [service].Error.InvalidArguments
+ [service].Error.AlreadyExists
+ [service].Error.NotSupported
+
+ void UnregisterPeerService(dict specification) [experimental]
+
+ Unregisters an existing local P2P Peer service
+
+ Possible Errors: [service].Error.InvalidArguments
+ [service].Error.NotRegistered
+
+Signals TechnologyAdded(object path, dict properties)
+
+ Signal that is sent when a new technology is added.
+
+ It contains the object path of the technology and
+ also its properties.
+
+ TechnologyRemoved(object path)
+
+ Signal that is sent when a technology has been removed.
+
+ The object path is no longer accessible after this
+ signal and only emitted for reference.
+
+ ServicesChanged(array{object, dict}, array{object})
+
+ This signal indicates a change in the services.
+ List of all services currently registered is passed
+ via the first array. And a list of services that have
+ been removed via the second array.
+
+ The list of all services is sorted. The dictionary
+ with the properties might be empty in case none of
+ the properties have changed. Or only contains the
+ properties that have changed.
+
+ For newly added services the whole set of properties
+ will be present.
+
+ The list of removed services can be empty.
+
+ This signal will only be triggered when the sort
+ order of the service list or the number of services
+ changes. It will not be emitted if only a property
+ of the service object changes. For that it is
+ required to watch the PropertyChanged signal of
+ the service object.
+
+ PeersChanged(array{object, dict}, array{object}) [experimental]
+
+ This signal indicates a change in the peers. List of
+ all peers currently registered is passed via the first
+ array. And a list of peers that have been removed via
+ the second array.
+
+ The list of all peers is sorted. The dictionary
+ with the properties might be empty in case none of the
+ properties have changed. Or only contains the
+ properties that have changed.
+
+ For newly added peers the whole set of properties will
+ be present.
+
+ The list of removed peers can be empty.
+
+ This signal will only be triggered when the sort order
+ of the peer list or the number of peers changes. It
+ will not be emitted if only a property of the peer
+ object changes. For that it is required to watch the
+ PropertyChanged signal of the peer object.
+
+ TetheringClientsChanged(array{string}, array{string}) [experimental]
+
+ This signal indicates a change in the tethering clients.
+ List of all tethering clients currently registered connman is
+ passed via the first array. And a list of tethering clients that
+ have been removed via the second array.
+
+ PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.