Manager hierarchy
=================

Service		net.connman
Interface	net.connman.Manager
Object path	/

Methods		dict GetProperties()

			Returns all global system properties. See the
			properties section for available properties.

			Possible Errors: [service].Error.InvalidArguments

		void SetProperty(string name, variant value)

			Changes the value of the specified property. Only
			properties that are listed as read-write are
			changeable. On success a PropertyChanged signal
			will be emitted.

			Possible Errors: [service].Error.InvalidArguments
					 [service].Error.InvalidProperty

		array{object,dict} GetTechnologies()

			Returns a list of tuples with technology object
			path and dictionary of technology properties.

			Possible Errors: [service].Error.InvalidArguments

		array{object,dict} GetServices()

			Returns a sorted list of tuples with service
			object path and dictionary of service properties.

			This list will not contain sensitive information
			like passphrases etc.

			Possible Errors: [service].Error.InvalidArguments

		array{object,dict} GetPeers() [experimental]

			Returns a sorted list of tuples with peer object path
			and dictionary of peer properties

			Possible Errors: [service].Error.InvalidArguments

		array{string} GetTetheringClients() [experimental]

			Returns a sorted list of MAC addresses of clients
			connected to tethered technologies.

		object ConnectProvider(dict provider)	[deprecated]

			Connect to a VPN specified by the given provider
			properties.

			When successful this method will return the object
			path of the VPN service object.

			This method can also be used to connect to an
			already existing VPN.

			This method call will only return in case of an
			error or when the service is fully connected. So
			setting a longer D-Bus timeout might be a really
			good idea.

			When 'SessionMode' property is enabled, this method
			call is disallowed.

			This API is deprecated and should not be used.
			The VPN configuration API is provided by ConnMan
			VPN daemon and user should use that one instead.

			Possible Errors: [service].Error.InvalidArguments

		void RemoveProvider(object path)	[deprecated]

			Remove a VPN specified by the object path.

		void RegisterAgent(object path)

			Register new agent for handling user requests.

			Possible Errors: [service].Error.InvalidArguments

		void UnregisterAgent(object path)

			Unregister an existing agent.

			Possible Errors: [service].Error.InvalidArguments

		void RegisterCounter(object path, uint32 accuracy, uint32 period)  [experimental]

			Register a new counter for user notifications.

			The accuracy is specified in kilo-bytes and defines
			a threshold for counter updates. Together with the
			period value it defines how often user space needs
			to be updated. The period value is in seconds.

			This interface is not meant for time tracking. If
			the time needs to be tracked down to the second, it
			is better to have a real timer running inside the
			application than using this interface.

			Also getting notified for every kilo-byte is a bad
			choice (even if the interface supports it). Something
			like 10 kilo-byte units or better 1 mega-byte seems
			to be a lot more reasonable and better for the user.

			Possible Errors: [service].Error.InvalidArguments

		void UnregisterCounter(object path)  [experimental]

			Unregister an existing counter.

			Possible Errors: [service].Error.InvalidArguments

		object CreateSession(dict settings, object notifier)  [experimental]

			Create a new session for the application. Every
			application can create multiple session with
			different settings. The settings are described
			as part of the session interface.

			The notifier allows asynchronous notification about
			session specific changes. These changes can be
			for online/offline state or IP address changes or
			similar things the application is required to
			handle.

			Every application should at least create one session
			to inform about its requirements and it purpose.

		void DestroySession(object session)  [experimental]

			Remove the previously created session.

			If an application exits unexpectatly the session
			will be automatically destroyed.

		object path, dict, fd RequestPrivateNetwork(dict options)
								[experimental]

			Request a new Private Network, which includes the
			creation of a tun/tap interface, and IP
			configuration, NAT and IP forwarding on that
			interface.
			An object path, a dictionary and a file descriptor
			with IP settings are returned.

			Possible Errors: [service].Error.InvalidArguments
					 [service].Error.NotSupported

		void ReleasePrivateNetwork(object path) [experimental]

			Releases a private network.

			Possible Errors: [service].Error.InvalidArguments

		void RegisterPeerService(dict specification, boolean master)
			   [experimental]

			Registers a local P2P Peer service

			Even if p2p techonology is not available, it will be
			possible to register peer services, since a p2p
			enabled WiFi device might appear at anytime. The
			registered peer services will automatically be enabled
			for the p2p WiFi device; the application does not need
			to do any re-registration.

			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.

Properties	string State [readonly]

			The global connection state of a system. Possible
			values are "offline", "idle", "ready" and "online".

			If the device is in offline mode, the value "offline"
			indicates this special global state. It can also be
			retrieved via the OfflineMode property, but is kept
			here for consistency and to differentiate from "idle".

			However when OfflineMode property is true, the State
			property can still be "idle", "ready" or "online"
			since it is possible by the end user to re-enable
			individual technologies like WiFi and Bluetooth while
			in offline mode.

			The states "idle", "ready" and "online" match to
			states from the services. If no service is in
			either "ready" or "online" state it will indicate
			the "idle" state.

			If at least one service is in "ready" state and no
			service is in "online" state, then it will indicate
			the "ready" state.

			When at least one service is in "online" state,
			this property will indicate "online" as well.

		boolean OfflineMode [readwrite]

			The offline mode indicates the global setting for
			switching all radios on or off. Changing offline mode
			to true results in powering down all devices. When
			leaving offline mode the individual policy of each
			device decides to switch the radio back on or not.

			During offline mode, it is still possible to switch
			certain technologies manually back on. For example
			the limited usage of WiFi or Bluetooth devices might
			be allowed in some situations.

		boolean SessionMode [readwrite]  [experminental][deprecated]

			This property exists only for compatibility reasons
			and does not affect ConnMan in any way.

			The default value is false.
