[Telepathy] File Sharing Utility

kartik rustagi kashes911 at gmail.com
Fri Apr 10 04:14:14 PDT 2009


It might be more convenient to include the whole spec over here. Here
it goes (spacing done to improve view ability):

org.freedesktop.Telepathy.Connection.Interface.FileSharing.DRAFT

Implementations of this interface must also implement:
   * org.freedesktop.Telepathy.Connection


An interface on connections to support protocols which allow users to
designate a set of files as available for retrieval by other users of
their choosing. Other features specified by this interface include
file metadata, revisions, and download mirrors.


Methods:

	CreateFileListing ( s: Title, s: File_Listing, s: Description)-> b
	
	In order to be able to publish a file one should have a File_Listing
node. Here the Discription parameter is optional. Returns whether the
File_Listing was created ('true') or not ('false').
	
	Parameters
	
	Title - s
		This will be the title of the File_Listing.
	
	File_Listing - s
		This is how the File_Listing of the user will be referenced.
	
	Discription - s
		This is optional and can be use to give the discription of the
File_Listing that is being created.
		
		
	Returns
	
		Returns 'true' if the File_Listing was created and 'false' if it was not.	

	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.
		
		
		
	
	
	
	
	
	
	
	AddSubSection ( s: Title, s: File_Listing_Parent, s:
File_Listing_Derived, s: Description) -> b
	
	This method is called in order to add a SubSection
(File_Listing_Derived) to an already existing File_Listing
(File_Listing_Parent). This method returns whether the creation of the
SubSection was successful ('true') or not ('false').
	
	Parameters
	
	Title - s
		This will be the title of the subsection.
	
	File_Listing_Parent - s
		This is how the repository of the user will be referenced.
	
	File_Listing_Derived - s
		This is how the SubSection will be referenced.
	
	Discription - s
		This is optional and can be use to give the discription of the
SubSection that is being created.

	
	Returns
	
		Returns 'true' if the SubSection was created and 'false' if it was not.	

	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_Listing_Parent specified is unknown on this channel or
connection. (generic description)
	
	org.freedesktop.Telepathy.Error.PermissionDenied
    		The user is not permitted to perform the requested operation.
(generic description)


	
	
	
	
	
	
	SuscribeList ( s: File_List, s: Subscription_Type, s: Subscription_Depth) -> b
	
	This method is called when one wants to suscribe to a File_List.
This method returns whether the subscription was successful ('true')
or not ('false').
	note: "no-ops" for AIM

	Parameters
	
	File_List - s
		This is the File_List user wants to subscibe.
	
	Subscription_Type - s
		This gives the subscription type.
		
	Subscription_Depth - s
		Since a pubsub FileListing might have many SubSections,therefore
this parameter gives the depth a user want to subscribe to.
			
	
	Returns
	
		Returns 'true' if the subscription was done and 'false' if it was not.	

	
	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)
	
	






	UnSuscribeList ( s: File_List) -> b
	
	This method is called when one wants to unsuscribe to a File_List.
This method returns whether the subscription was successful ('true')
or not ('false').
	note: "no-ops" for AIM

	Parameters
	
	File_List - s
		This is the File_List user wants to unsubscibe from
			
	
	Returns
	
		Returns 'true' if the unsubscription was done and 'false' if it was not.	

	
	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)

	
	
	
	


	PublishFile ( s: File_List, s: Filename, q: ItemId, as: Metadata, s:
Mirrors) -> b
	
	This method is called in order to to add a file to the File_List of
published files. This method returns whether the file was published
successfully 	('true') or not ('false').
	
	Parameters
	
	File_List - s
		This is the File_List user wants to publish file to.
	
	Filename - s
		This is the FileName user want to publish.
	
	ItemId - q
		This Id is used to create more than one version of the same file.
	
	Metadata - as
		This list all the metadata about the file which includes
Size,Modified,CheckSum,Ckecksumtype and Mime.
		
	Mirrors	- s
		This list the mirrors from where the file can be fetched.
		
	
	Return
		Returns 'true' if the Filename was published and 'false' if it was not.
		
	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)

	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)





	
	DeleteRevision ( s: File_List, q: File_Item_Id) -> b
	
	This method is called in order to delete a revision from the list of
published files on a File_List. This method returns whether the file
was 		deleted successfully ('true') or not ('false').
	
	
	Parameters
	
	File_List - s
		This is the File_List which is holding the file with the Item_Id
equal to File_Item_Id
		
	File_Item_Id - q
		This is the ItemId of the FileName that has to be deleted
		
	
	Return
		Returns 'true' if the FileItemId was deleted and 'false' if it was not.
		
	
	Possible Error	
	
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)

	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)







	MakeRevision ( s: File_List, s: Filename, q: ItemId, as: Metadata, s:
Mirrors) -> b
	
	This method is called in order to make a revision to an existing file
on File_List. Use a different ItemId than the original file. This
method 		returns whether the file was revised successfully ('true') or
not ('false').


	Parameters
	
	File_List - s
		This is the File_List on which the file user want to make revision
to is listed.
	
	Filename - s
		This is the FileName user want to publish.
	
	ItemId - q
		This Id is used to create more than one version of the same file.
	
	Metadata - as
		This list all the metadata about the file which includes
Size,Modified,CheckSum,Ckecksumtype and Mime.
		
	Mirrors	- s
		This list the mirrors from where the file can be fetched.
		
	
	Return
		Returns 'true' if the FileName was published and 'false' if it was not.
		
	
	Possible Error	
		
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)

	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)







	SetPermissions ( s: File_List, u: User_Handle, s: Affilation) -> Nothing

	This method is called in order to set permissions for users regarding
a File_List owned by an owner.  This method returns whether
permissions were set successfully ('true') or not ('false').


	Parameter
		
	File_List - s	
		This is the File_List owner want to change permission of.
		
	UserHandle - u
		UserHandle of the user whose permission/affilation are being changed.
	
	Affilation - s
		This is the permission that will be set for the User_Handle
		
	
	Return
		Nothing
		
		
	Possible Error
	
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List specified is unknown on this channel or
connection. (generic description)

	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)




	
	GetRepoList( u: User_Handle ) -> as
	
	This method is called to request the File_list which are hosted by User_Handle.
	
	Parameter
	
	User_Handle - u
		The Contact_Handle of the user whose list of hosted File_List is
being requested.
		
	
	Return
		Returns an array of strings where each string represents a File_List
hosted by the User.

		
	
	Possible Error
			
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The User_handle specified is unknown on this channel or
connection. (generic description)
		
	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)



	
	
	
	
	


	GetFileList( s: File_List, u: User_Handle ) -> as
	
	This method is called to request the list of files in a File_List
hosted by the user with Contact_Handle as User_Handle.

	Parameter

	File_List - s
		This is the File_List whose list of included file is being requested
	
	User_Handle - u
		The Contact_Handle of the user whose list of hosted File_List is
being requested.
		
	
	Return
		Returns an array of strings where each string represents a Filename
hosted by the User. If their is a Subsection at the same hierarchy
level, it is aso retturned in this array.

		
	
	Possible Error
			
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List/User_handle specified is unknown on this channel
or connection. (generic description)
		
	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)








	RequestFile(s: File_List, u: User_Handle, s: Filename) -> nothing
	
		In order to request for a file to be sent one must request a
FileSharing channel for the mirror hosting the file including the
following mandatory 		properties (Protocol, FileId). After this
RequestFile is called to to configure the socket that will be used to
complete this operation.
	

	Parameter	
		
		File_List - s
			This is the File_List whose list of included file is being requested
	
		User_Handle - u
			The Contact_Handle of the user whose list of hosted File_List is
being requested.

		Filename - s
			File which is being requested to be sent

	Possible Error
			
	org.freedesktop.Telepathy.Error.Disconnected
		The connection is not currently connected and cannot be used. This
error may also be raised when operations are performed on a Connection
			for which StatusChanged  has signalled status Disconnected for
reason None.

	org.freedesktop.Telepathy.Error.InvalidHandle
    		The File_List/User_handle specified is unknown on this channel
or connection. (generic description)

	org.freedesktop.Telepathy.Error.PermissionDenied
		The user is not permitted to perform the requested operation.
(generic description)




Signals
	
	NotificationChange( s: File_List, s: File_List_Title, s:
Filename_Modified, s: Description, as: Metadata, s: Mirror)
	
	This signal is sent to every user which is subscribed to the
File_List in which the change has been made.
	
	Parameter
	
	File_List - s
		This is the File_List on which the change has been done
	
	File_List_Title - s
		This is the title of the File_List which has been modified

	Filename_Modified - s
		This is Filename on File_List which has been changed

	Discription - s
		This is the Discripton of the File_List which has been modified
		
	Metadata - as
		This is the Metadata of the file which has been added/deleted
		
	Mirror - s
		Mirror of the modified file.
	
	



Structure types

	Metadata ( u: Size, s: Modified, s: CheckSum, s: Checksumtype, s: Mime )

	This represents all the information needed about the file.
	
	Members
	
	Size - s
		Size of the file in KB
	
	Modified - s
		The last modified time of the revision
		
	CheckSum - s
		Checksum of the file

	Checksumtype - s
		The type of CheckSum used
	
	Mime - s
		Mime Type of the file




On Fri, Apr 10, 2009 at 3:50 AM, kartik rustagi <kashes911 at gmail.com> wrote:
> Changes suggested to the specification have been made. This
> specification will now work for XMPP and AIM (atleast). For the
> requirement of AIM I have referred :
> http://dev.aol.com/aimclient/OpenAIM168/java-docs/index.html
>
> The modified spec can be looked up at:
> http://pastebin.com/f3222e122
>
> I am waiting for speedy recommendations as I am following a
> rigid(almost) timeline.
>
> Thanks
> Kartik Rustagi
>
> On Tue, Apr 7, 2009 at 3:40 AM, kartik rustagi <kashes911 at gmail.com> wrote:
>> I have written the first draft of the File Sharing Specification.I
>> will request you to kindly review this and suggest changes so that I
>> can finalise this and move forward with the implementation.
>>
>> The specification can be found at:
>>
>> http://pastebin.com/f11d72989
>>
>>
>> And even poorly formated version at :
>>
>> http://wiki.sugarlabs.org/go/0-th
>>
>> I again request to review this as soon as possible (I am following a Time Line)
>>
>>
>> The XEP-0214 specification can be found on :
>> http://xmpp.org/extensions/xep-0214.html
>>
>>
>> Regards
>> Kartik Rustagi
>>
>


More information about the telepathy mailing list