lundi 30 juin 2008

Details

After reading my previous post, my mentor asked me to be more specific about the methods, I have to improve:

- The first method is the sendFile function (in OperationSetFileTransfer interface). This function is implemented in each protocols and it’s used in order to send a file to a contact. The problem is in sc-filetransfer that this function is Boolean and then we get true if the filetransfer succeeded otherwise false. Then I have to turn this function into a method (void) and thus I could have (and also the user) more information about what happened when the file wasn’t send.

- The second method that I can improve, is, the acceptFile (in IncomingFileTransferRequest class). This method is called when a user would like to send to us a file. Like the sendFile, this function was Boolean and it must be transform it in a method in order to have more information about what happen.

- Another thing which can be improved is the Exceptions management. Currently in sc-filetransfer, we catch the exceptions but not all. The goal is to create a new class (FileTransferException) in order to catch all exceptions when a file is send and thus to have a management of exception which is the same in the different protocol (Error code, etc…).

samedi 28 juin 2008

GO!

Hey!

I have some news!

First of all, since my last update, I have learned a lot about SIP-Communicator and particularly about the file transfer. Indeed, some things of a file transfer implementation already existed in a student project, named sc-filetransfer. This project provides some elements to perform a file transfer or receive files on these various protocols: MSN, Yahoo, Jabber, Icq. I can use a lot of elements from this project and inspire me in order to implement the file transfer on the current version of SIP-Communicator. Some functions can be improved in order to have a better mechanism such as a better exceptions processing.

Furthermore, I have meet Emil Ivov (project leader) and Yana Stamcheva in Illkirch this week. We have discussed about what exist in SC, how the file transfer must be implemented, and what elements to improve. Thanks to this meeting, I have better understood my project and what I have to do.

Then, I have started to modify the implementation of the file transfer, I modified the OperationSetFileTransfer.java. I have begun to develop the sendFile functionality in the various protocols. This functionality allow user to send (not receive) files through Sip-communicator. Presently it works not completely; some things should be improved…

The next step is to create a listener in order to know how many data were already being sent, and after, I will begin to develop the files request receiving.

jeudi 12 juin 2008

Steady!

Hi everybody,

I have just finished my exams and now I begin to work on my project. Between my studies and my exams, I have learned the most I can, on the sources of SIP Communicator. I also have visited the different forums from the others IM (such Miranda, Pidgin…) in order to see how they have implemented the file transfer. However, they use another language (c, c++) and they don’t use OSGi. Furthermore, I haven’t found any interesting things on the mailings list, therefore I have to go inside the code in order to understand.

Until now, I have just tried to modify some features in SC. I have tried to create a plugin (thanks to the exampleplugin). My first idea was to create a button (send a file) in SC contact menu (when the users right click over a contact). I use the exampleplugin to create the menu and after only, I have seen that this button already existed. And after a more deep research, I have seen that file transfer features (such the file transfer menu button, etc…) were already implemented. I have just to enable these buttons.

Now, I will try to understand how SC presently works and find all file transfer features existing. Then, I will add my own files in order to proceed to a file transfer (first a file chooser and then, the file transfer).

Until now, my main problem was to find what file/function is used to process some functionalities or another. It is difficult to know what is already done and what I have to add and where. But the more I work on my project, the easier it will be.