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

Service		org.openobex
Interface	org.openobex.Manager
Object path	/org/openobex

Methods		object CreateBluetoothSession(string target_address,
									string source_address, string pattern)

			Creates a Bluetooth OBEX session and returns the new session object
			of type org.openobex.Session. Session is automatically connected.
			The target_address represents the remote Bluetooth device,
			source_address specifies which Bluetooth adapter to use
			(to use default adapter, use "00:00:00:00:00:00") and
			the pattern specifies the OBEX service it connects to,
			or the OBEX service using a fixed Bluetooth channel.
			Pattern can be a UUID-128 identifying the service or 
			place holder as "opp" (for Object Push) or "ftp" (for FTP).
			In case you want to use a fixed channel, UUID has to be
			like: UUID:CHANNEL where UUID is a valid UUID or service
			place holder like before, and CHANNEL is an integer
			representing a valid RFCOMM channel. Session object can
			only be used when SessionConnected signal is emitted.
			If connection fails (remote device refuses connection, link dies, etc.),
			SessionConnectError signal is emitted instead. To cancel
			connecting use CancelSessionConnect method.

			Returns object path for the created session.

			Possible errors: org.openobex.Error.InvalidArguments
							 org.openobex.Error.TransportNotAvailable
							 
		object CreateBluetoothImagingSession(string target_address,
									string source_addres, string bip_feature)
									
			Create Bluetooth OBEX session using BIP profile and returns new
			session object of type org.openobex.Session. target_address
			represents the remote Bluetooth device, source_address specifies
			which Bluetooth adapter to use ("00:00:00:00:00:00" for default
			adapter). bip_feature specifies imaging feature to use
			("imagepush" or "remotedisplay"). In case you want to use a fixed
			RFCOMM channel, bip_feature has to be like FEATURE:CHANNEL where
			CHANNEL is an integer representing a valid RFCOMM channel. Session
			object can only be used when SessionConnected signal is emitted.
			If connection fails, SessionConnectError signal is emitted instead.
			To cancel connecting use CancelSessionConnect method.
			
			Returns object path for the created session.
			
			Possible errors: org.openobex.Error.InvalidArguments
							 org.openobex.Error.TransportNotAvailable
							 
		object CreateUsbSession(integer interface_number, string profile)

			Creates a USB OBEX session and returns the new session object
			of type org.openobex.Session. Session is automatically connected.
			To find out about available USB OBEX interfaces, use GetUsbInterfacesNum
			and GetUsbInterfaceInfo. profile specifies profile to be used for
			session (FTP profile is commonly used for USB OBEX sessions).
			Session object can only be used when SessionConnected signal is emitted.
			If connection fails (remote device refuses connection, link dies, etc.),
			SessionConnectError signal is emitted instead.
			Do not use CancelSessionConnect with USB sessions (connection is
			established instantly).

			Returns object path for the created session.

			Possible errors: org.openobex.Error.InvalidArguments
							 org.openobex.Error.TransportNotAvailable
		
		object CreateTtySession(string tty_dev, string profile)
			(since 0.4.5)
			
			Creates OBEX session using TTY device and returns the new session
			object of type org.openobex.Session. Session is automatically
			connected.
			tty_dev specifies TTY device node.
            pattern specifies the profile to be used for session which may be
            either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server
            or "bip" for OBEX Basic Imaging server.
            Session object can only be used when SessionConnected signal is emitted.
            If connection fails (remote device refuses connection, link dies, etc.),
            SessionConnectError signal is emitted instead.
            Do not use CancelSessionConnect with TTY sessions (connection is
            established instantly).
			
			Returns object path for the created session.

            Possible errors: org.openobex.Error.InvalidArguments
		
		integer GetUsbInterfacesNum()

			Returns the number of available USB OBEX interfaces

			Possible errors: none

		dict GetUsbInterfaceInfo(integer interface_number)

			Returns info about specified USB OBEX interface:
				"Manufacturer" : Manufacturer of the device
				"Product" : Product name of the device
				"Serial" : Serial number of the device
				"Configuration" : USB configuration that this interface belongs to
				"ControlInterface" : description of the OBEX control interface, typically
				reveals the functionality of the interface
				"DataInterfaceIdle" : description of the OBEX data idle interface, typically empty
				"DataInterfaceActive" : description of the OBEX data active interface, typically empty

			If specified interface number is too large, returns empty structure.

			Possible errors: none

		boolean CancelSessionConnect(object session_object)
		
			Cancells session connection. If Session is being connected,
			connection will be cancelled and SessionConnectError signal
			with org.openobex.Cancelled error will be emitted. If session
			is already connected or invalid session is supplied, this function
			will do nothing and FALSE will be returned. 
			
			Returns TRUE if cancelled successfully, FALSE otherwise.
			
			Possible errors: none

		object CreateBluetoothServer(string source_address, string pattern,
									 boolean require_pairing)
			
			Gets Server object for specified bluetooth source address.
			source_address can be Bluetooth address of any adapter or just
			"00:00:00:00:00:00" for default adapter.
			pattern specifies the type of server to create which may be
			either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server
			or "bip" for OBEX Basic Imaging server.
			require_pairing specifies whether client device should be paired 
			before allowing any operations (recommended values: True for FTP,
			False for OPP).

			Returns object path for the created server.
			
			Possible errors: org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.TransportNotAvailable
		
		object CreateTtyServer(string tty_dev, string pattern)
			(since 0.4.5)
		
			Gets Server object for specified TTY device (e.g. /dev/ttyUSB0).
			This kind of server can be used on embedded devices to serve files via USB OBEX.
			tty_dev specifies TTY device node.
			pattern specifies the type of server which may be
			either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server
			or "bip" for OBEX Basic Imaging server.
			
			Return object path for the created server.
			
			Possible errors: org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
		
		dict GetSessionInfo(object session_object)

			Returns info about specified session:
				"BluetoothTargetAddress" : Target device Bluetooth address (only for Bluetooth sessions);
				"BluetoothSourceAddress" : Source Bluetooth address (hci device used) (only for Bluetooth sessions);
				"BluetoothChannel" : RFCOMM channel used for session (only for Bluetooth sessions); 
				"UsbInterfaceNumber" : USB interface number (only for USB sessions);
				"TTYDevice" : TTY device which is used (only for TTY sessions);
			If specified session does not exist, returns empty structure.
			session_object specifies DBus path of Session object.

			Possible errors: none
			
		dict GetServerInfo(object server_object)

			Returns info about specified server:
				"BluetoothSourceAddress" : Bluetooth source address (only for Bluetooth servers);
				"RequirePairing" : if connecting to server triggers pairing (only for Bluetooth servers);
				"TTYDevice" : TTY device which is used (only for TTY servers);
			If specified session does not exist, returns empty structure.
			server_object specifies DBus path of Server object.

			Possible errors: none
			
		array<string> GetSessionList()
		
			Returns list of open sessions. Array contains DBus paths of sessions.
			
			Possible errors: none
			
		array<string> GetServerList()
		
			Returns list of open servers. Array contains DBus paths of servers.
			
			Possible errors: none
			
		string GetVersion()
		
			Returns obex-data-server version and obex-data-server API version.
			Returned string is formated like that: "<ods_ver>:<ods_api_ver>".
			API version is an integer. When API incompatible with older one is
			released, this number is increased by one. As of ods version 0.4
			API version is 1. Example of returned string: "0.4:1".
			
			Possible errors: none

Signals		void SessionConnected(object path)

			Emitted when Session is connected to target device.
			
		void SessionConnectError(object path, string error_name, string error_message)
		
			Emitted when Session connection fails. Session object must not be
			used after that.

		void SessionClosed(object path)

			Emitted when Session is closed and no longer valid.

Server hierarchy
===============================

Service		org.openobex
Interface	org.openobex.Server
Object path	/org/openobex/server{0,1,2...}

Methods		void Start(string path, boolean allow_write, boolean auto_accept)

			Starts OBEX Object Push / FTP server (begins 
			listening for connections). Started signal is emitted after
			the server is started. If error occurs, ErrorOccurred signal is emitted
			instead. Once the server is started, it emits SessionCreated signal
			for every newly connected client.

			If this is Object Push server, path defines where all received files
			will be saved. In case of FTP server path is the top-level folder which
			will be served. allow_write specifies whether write operations
			will be allowed (put and delete). In most cases, allow_write should be
			set to True. 
			auto_accept specifies whether incoming files should be always accepted 
			(recommended values: True for FTP, False for OPP). If auto_accept is
			set to False, either Accept() or Reject() has to be called
			every time after you receive TransferStarted signal in ServerSession
			object. If Accept() or Reject() is not called in 15 seconds after
			TransferStarted signal, timeout will happen and the incoming file will
			be automatically rejected. It is important to listen for Cancelled 
			signal on ServerSession object when auto_accept is False because
			you can receive Cancelled signal while waiting for user to accept or
			reject incoming file. This would effectively mean that timeout happened
			and the incoming file was rejected.

			Possible errors: org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.Started

		void Stop()

			Stops the server. All client connections will be closed and
			operations will be cancelled. Stopped signal is emitted 
			after the server is stopped.

			Possible errors: org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotStarted
							 
		void Close()

			Closes the server. If server is not stopped, all client connections
			will be closed, operations will be cancelled. Server object will
			be destroyed after that. Closed signal is emitted immediately
			when this method is invoked.
			
			Possible errors: org.openobex.Error.NotAuthorized

		boolean IsStarted()

			Returns true if server is started, false otherwise.

			Possible errors: none
			
		void SetOption(string name, variant value)
		
			Sets server options. Supported options:
				"Limit" : maximum server sessions that server will accept
						  (0 for no limit). Default is 0. Value type is uint16.
				"RequireImagingThumbnails" : whether to require clients to send
						  thumbnails for uploaded images (specific to BIP servers).
						  Default is False. Value type is boolean.
						  
			Possible errors: org.openobex.Error.InvalidArguments
			
		dict GetServerSessionInfo(object session_object)

			Returns info about specified server session:
				"BluetoothAddress" : Client device Bluetooth address;
			If specified server session does not exist, returns empty structure.
			session_object specifies DBus path of ServerSession object.

			Possible errors: none
			
		array<string> GetServerSessionList()
		
			Returns list of open server sessions. Array contains DBus paths 
			of server sessions.
			
			Possible errors: none

Signals		void Started()

			This signal informs that the server was started.

		void Stopped()

			This signal informs that the server was stopped and all operations
			were ceased.
			
		void Closed()
		
			This signal informs that the server was closed and it's object is
			no longer valid.

		void ErrorOccurred(string error_name, string error_message)

			This signal informs that error occurred while starting or stopping
			the server.
			
		void SessionCreated(object session_object)
		
			Signal informs that client connected to server and new ServerSession
			object was created. Returns path of ServerSession object.
		
		void SessionRemoved(object session_object)
		
			Signal informs that client disconnected from server. Returns
			path of ServerSession object that was closed.

Session hierarchy
===============================

Service		org.openobex
Interface	org.openobex.Session
Object path	/org/openobex/session{0,1,2...}

Methods		void Disconnect()

			Disconnects from remote device by sending OBEX disconnect command.
			Disconnected signal is emitted once disconnected. Normally,
			"Close" should be called immediately after Session is disconnected.

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.OutOfMemory
			
		void Close()
		
			Closes the session (the actual connection to remote device is closed).
			Session object is finalized and can not be used anymore.
			Closed signal is emitted once closed.
			
			Possible errors: org.openobex.Error.Failed
							 org.openobex.Error.NotAuthorized

		void ChangeCurrentFolder(string path)

			Changes current path on a remote device to the specified one. 
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.OutOfMemory

		void ChangeCurrentFolderBackward()

			Changes current path on a remote device one level up. If current
			folder is root, path is not changed. 
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.OutOfMemory

		void ChangeCurrentFolderToRoot()

			Changes current path on a remote device to root.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.OutOfMemory

		string GetCurrentPath()

			Returns current path on a remote device.

			Possible errors: none

		void CopyRemoteFile(string remote_filename, string local_path)

			Starts receiving a specified file from a remote device.
			remote_filename specifies the file to receive on a remote device.
			local_path is the path where received file will be saved.
			TransferStarted signal is emitted when transfer starts. If error 
			occurs during operation, ErrorOccurred signal is emitted instead.

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.NotFound
							 org.openobex.Error.OutOfMemory
							 
		void CopyRemoteFileByType(string type, string local_path)
		
			Starts receiving default object of specified type from a remote
			device. type specifies OBEX type to receive. local_path is the path
			where received file will be saved. TransferStarted signal is emitted
			when transfer starts. If error occurs during operation,
			ErrorOccurred signal is emitted instead.
			
			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.NotFound
							 org.openobex.Error.OutOfMemory

		void CreateFolder(string folder_name)

			Creates a folder on a remote device with a specified
			name. This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors: org.openobex.Error.Busy
							 org.openobex.Error.Failed
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.OutOfMemory

		string RetrieveFolderListing()

			Retrieves the list of files in the current folder.
			The list is XML formatted string. See OBEX specification for
			info about the format.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors:

		string GetCapability()

			Retrieves the FTP capability object.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors:

		void SendFile(string local_path)

			Starts sending a specified file to a remote device.
			local_path specifies the path to file that will be sent. 
			TransferStarted signal is emitted when transfer starts. If error 
			occurs during operation, ErrorOccurred signal is emitted.

			Possible errors: org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.Busy
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.OutOfMemory
							 org.openobex.Error.NotFound
							 !! org.openobex.Error.Failed
							 
		void SendFileExt(string local_path, string remote_filename, string type)
		
			Starts sending a specified file to a remote device. It's possible
			to specify different filename (remote_filename) than that of local
			file. When remote_filename is empty, original filename is used.
			type specifies particular OBEX type to send file as. type can be
			empty. When type is used, remote_filename must be empty.
			TransferStarted signal is emitted when transfer starts. If error 
			occurs during operation, ErrorOccurred signal is emitted.
			
			Possible errors: org.openobex.Error.NotAuthorized
							 org.openobex.Error.NotConnected
							 org.openobex.Error.Busy
							 org.openobex.Error.InvalidArguments
							 org.openobex.Error.OutOfMemory
							 org.openobex.Error.NotFound
							 !! org.openobex.Error.Failed

		void DeleteRemoteFile(string remote_filename)

			Deletes specified file on remote device.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).

			Possible errors: org.openobex.Error.Failed
			
		void RemoteCopy(string remote_source, string remote_destination)
			(since 0.4.3)
		
			FTP profile
		
			Initiates remote copy operation (data is copied from one location
			to the other in remote device). remote_source specifies a file
			or folder to be copied (this file or folder has to exist in current
			directory). remote_destination specifies path where to copy data.
			This path can be relative to current folder or relative to root
			folder. Both slash ('/') and backslash ('\') symbols can be used in
			path. Example source/destination pairs :
				'File.txt' : 'Folder/OtherFolder/NewFile.txt'
				'Folder' : '/Folder/OtherFolder/NewFolder' (relative to root folder)
				'Folder' : 'Folder\NewFolder'
			Note that ods does not check remote_destination argument validity.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			! This method is not included in official FTP profile specification,
			therefore not many devices support it.
			
			Possible errors: 
			
		void RemoteMove(string remote_source, string remote_destination)
			(since 0.4.3)
		
			FTP profile
			
			Initiates remote move operation (data is moved from one location
			to the other in remote device). See RemoteCopy method for how the
			arguments should be used.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			! This method is not included in official FTP profile specification,
			therefore not many devices support it.
			
			Possible errors:
			
		string GetImagingCapabilities()
		
			BIP profile, all features
			
			Retrieves imaging capabilities object ("x-bt/img-capabilities").
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors:
			
		void GetImageInfo(string local_path, out uint16 width,
							out uint16 height, out string encoding)
		
			BIP profile utility function
			
			Returns image info for specified locally stored image. Returns
			width, height and encoding. Can be used to determine how image
			should be resized to match remote device preferred image format
			specified in imaging capabilities object.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors: org.openobex.Error.InvalidArguments
							 org.openobex.Error.NotSupported
							 org.openobex.Error.Failed
			
		void PutImage(string local_path)
		
			BIP profile, ImagePush and RemoteDisplay features
			
			Pushes image to remote device. local_path specifies image filename.
			TransferStarted signal is emitted when transfer starts. If error 
			occurs during operation, ErrorOccurred signal is emitted. When
			transfer finishes successfully, ImageHandleReceived signal is
			emitted (ImageHandleReceived signal returns image handle for pushed
			image to be used in further operations).
			
			Possible errors:
			
		void PutImageResized(string local_path, uint16 width, uint16 height,
								string encoding, string transformation)
								
			BIP profile, ImagePush and RemoteDisplay features
			
			Pushes resized/encoded image to remote device. Client application
			should parse ImagingCapabilities object prior to this to acquire
			image formats supported by remote device. local_path specifies
			original image filename. width and height specify new dimensions.
			encoding specifies image format ("JPEG", "PNG", etc.). If encoding
			is empty, original encoding will be preserved. See ImageMagick
			supported formats list for available values. transformation
			defines how image should be resized. Possible transformations are
			"stretch" (stretches image to new dimensions), "crop" (crops image)
			or "fill" (in case dimensions are bigger than original, image is filled
			with white backround). If specified dimensions match the original
			dimensions, no resizing will be done. If invalid transformation value
			is used, "stretch" will be used by default.
			TransferStarted signal is emitted when transfer starts. If error 
			occurs during operation, ErrorOccurred signal is emitted. When
			transfer finishes successfully, ImageHandleReceived signal is
			emitted (ImageHandleReceived signal returns image handle for pushed
			image to be used in further operations).
			
			Possible errors:
			
		void PutLinkedAttachment(string image_handle, string local_path,
									string content_type, string charset)
									
			BIP profile, ImagePush feature
			
			Pushes attachment linked to previously pushed image. image_handle
			specifies handle of previously pushed image, local_path is path
			to file to be sent. content_type specifies attachment's MIME 
			content type, e.g. "text/plain". content_type is optional and can
			be empty. charset specifies charset in which attachment is encoded.
			charset is also optional and can be empty. Progress of transfer
			is reported using TransferStarted, TransferProgress, ErrorOccurred
			and TransferCompleted signals.
			
			Possible errors:
			
			
		void RemoteDisplaySelectImage(string image_handle)
		
			BIP profile, RemoteDisplay feature
			
			Selects previously pushed image (using PutImage or PutImageResized
			methods). image_handle specifies image handle corresponding to
			previously pushed image (returned by ImageHandleReceived signal).
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors: org.openobex.Error.Failed
			
		void RemoteDisplayShowCurrentImage()
		
			BIP profile, RemoteDisplay feature
			
			Triggers remote device to show currently selected image.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors: org.openobex.Error.Failed
			
		void RemoteDisplayShowNextImage()
		
			BIP profile, RemoteDisplay feature
			
			Triggers remote device to show next image.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors: org.openobex.Error.Failed
			
		void RemoteDisplayShowPreviousImage()
		
			BIP profile, RemoteDisplay feature
			
			Triggers remote device to show previous image.
			This method only returns after operation is finished.
			This means that if method returned without any error,
			operation is complete (this is in contrast with how file 
			transfers work).
			
			Possible errors: org.openobex.Error.Failed
			
		dict GetTransferInfo()

			Returns info about the ongoing transfer:
				"LocalPath" : full local path;
				"RemoteFilename" : filename;
				"Size" : total bytes being transferred;
				"Time" : last modification time of file being sent;
				"OBEXCommand" : either "GET" or "PUT";

			Possible errors: none

		boolean IsBusy()

			Returns true if there is an operation in progress, false otherwise.

			Possible errors: none

		void Cancel()

			Cancels any operation that is in progress.

			Possible errors: org.openobex.Error.Failed

Signals		void Cancelled()

			This signal informs that the current transfer was cancelled either by
			client or by server.

		void Disconnected()

			This signal informs that the session was disconnected.
			
		void Closed()
			
			This signal informs that the session was terminated and that it's object
			is no longer valid.

		void TransferStarted(string filename, string local_path, uint64 total_bytes)

			This signal informs that transfer was started.

			total_bytes is the number of total bytes that are being sent (0
			if total bytes are unknown). filename specifies the filename (without
			path) of file being sent or null if it is unknown. local_path specifies
			where the file is stored locally.
			
		void TransferProgress(uint64 bytes_transferred)

			This signal is emitted constantly during the transfer. 
			bytes_transferred specifies how many bytes were already transferred.

		void TransferCompleted()

			This signal informs that transfer was completed.

		void ErrorOccurred(string error_name, string error_message)

			This signal informs that error occurred while performing some operation.
			
		void ImageHandleReceived(string image_handle, boolean thumbnail_requested)
		
			This signal returns image handle for pushed image (using PutImage or
			PutImageResized). thumbnail_requested specifies whether Imaging
			Responder requested client to send thumbnail. If thumbnail was
			requested, TransferStarted/TransferProgress/TransferCompleted
			signals will be emitted when transferring thumbnail.

ServerSession hierarchy
===============================

Service		org.openobex
Interface	org.openobex.ServerSession
Object path	/org/openobex/serversession{0,1,2...}

Methods		void Accept()

			Accepts incoming file (use this when auto_accept is set to False for
			corresponding Server object). If auto_accept is True, this function will
			do nothing. Call this method just after receiving TransferStarted signal.
			If there is no transfer in progress or if current transfer is not 
			an incoming transfer, error will be returned. If you do not call
			Accept() or Reject() in 15 seconds after TransferStarted signal,
			incoming file will be automatically rejected and you will receive
			Cancelled signal.
			
			Possible errors: org.openobex.Error.Failed
			
		void Reject()
		
			Rejects incoming file (use this when auto_accept is set to False for
			corresponding Server object). If auto_accept is True, this function will
			do nothing. Call this method just after receiving TransferStarted signal.
			If there is no transfer in progress or if current transfer is not 
			an incoming transfer, error will be returned. If you do not call
            Accept() or Reject() in 15 seconds after TransferStarted signal,
            incoming file will be automatically rejected and you will receive
            Cancelled signal.
			
			Possible errors: org.openobex.Error.Failed
				
		void Disconnect()

			Disconnects from remote device.
			ServerSession object is finalized and can not be used anymore.
			Disconnected signal is emitted once disconnected.

			Possible errors: 
							 
		dict GetTransferInfo()

			Returns all info about the ongoing transfer (filename, local path, 
			total bytes).

			Possible errors: none
			
		void Cancel()

			Cancels any operation that is in progress.

			Possible errors: org.openobex.Error.Failed
			
Signals		void Cancelled()

			This signal informs that the current transfer was cancelled either by
			client or by server.
			
		void Disconnected()

			This signal informs that the ServerSession was disconnected.
			ServerSession object is finalized and can not be used anymore.
			
		void TransferStarted(string filename, string local_path, uint64 total_bytes)

			This signal informs that transfer was started.

			total_bytes is the number of total bytes that are being sent (0
			if total bytes are unknown). filename specifies the filename (without
			path) of file being sent or null if it is unknown. local_path specifies
			where the file is stored locally.
			
		void TransferProgress(uint64 bytes_transferred)

			This signal is emitted constantly during the transfer. 
			bytes_transferred specifies how many bytes were already transferred.

		void TransferCompleted()

			This signal informs that transfer was completed.

		void ErrorOccurred(string error_name, string error_message)

			This signal informs that error occurred while performing some operation.
			
		void RemoteDisplayRequested(string filename)
		
			This signal is used for Imaging sessions that use Remote Display
			feature. Signal informs that remote device requested display of 
			previously uploaded image. filename specifies the filename of image
			to be displayed.
