Dernière mise à jour le 21/12/2012

Cptalk!


Mots clefs: C++, Gloox, Jabber, Console, GoogleTalk Like

Introduction
Je m'attèle depuis quelques temps à la programmation d'un petit client console simple pour le protocole Jabber.
J'ai crée le squelette du code source. Pour le moment: une petite interface ncurse, le thread de connexion et quelques commandes rudimentaires.
Le tout est codé en C++ et utilise largement les bibliothèques ncurses, gloox et pthread. D'ailleurs, inutile d'espérer compiler sans ces bibliothèques installées sur votre système.
De plus, j'utilise Git pour la maintenance des versions.
Vous pourrez cloner la master branch à partir du lien :
$ git clone https://ratsy@github.com/ratsy/Cptalk-.git
Il est sous licence GPL.

A ce sujet, je vous invite à lire attentivement la page: licence FSF si jamais vous voudriez faire passer votre travail sous licence libre!
Je peux aussi vous proposer ceci!

Approche technique
Je dois dire que pour le moment, ce qui me donne le + de fil à retordre c'est plutôt l'interface et notamment l'affichage de certains caractères et en particulier les accentués.
De plus, à la connexion, puisque je demande à Cptalk de m'afficher le message d'état de tous mes contacts, j'ai l'impression que l'affichage n'est pas bien géré, certaines informations se chevauchent de temps en temps...peut être qu'il faut que je mette un temps de latence entre chaque refresh...
Le thread de connexion a été optimisé, puisqu'à présent les entrée, sortie et les flux de données se suivent en boucle sur quelques ms. Ce n'était pas le cas auparavant, un thread non-safe de connexion était lancé en fond, mais du coup l'écriture des données se chevauchait dans la pile de sortie... une erreur de débutant je dois dire. Peut-être que ca va me faire me plonger un peu plus dans les mutex un jour...
Seule la methode connect() du client gloox est bloquante et induit une petite latence de connexion. J'ai remarqué ça sur mcabber aussi, on ne doit pas pouvoir faire autrement...

Je suis vraiment intéressé par toutes les remarques que vous pourrez me faire pour améliorer le code.



Cptalk!




[LutiX.org écrit sous Vim et herbergé @Home sur une Debian Squeeze par Apache et PHP5]