La réécriture en D a commencé au même moment que le précédent post, mais je n'avais pas mis à jour l'avancement, donc voici :
L'état actuel est bien plus avancé que là où en était le bot en C++, voici ce qui est fonctionnel pour le moment.
- Réseau, entièrement fonctionnel, il a fallu écrire moi même une classe socket asynchrone ce qui fut un peu une épreuve ^^
- Architecture, le bot est construit, même si il y a un peu de boulot sur la reflection pour pouvoir exploiter complètement le polymorphisme comme un bot moderne ( et éviter les switchs géant par exemple ... )
- Utilitaires, réécriture d'une classse RSA ( exploitant aussi la lib openssl ), des IO binaires ( très facile avec la lib de base du D ), ainsi que d'autres trucs
- Types de données, messages, types sont implémentables dans le bot, il faut que je travaille sur un créateur de protocol à la manière de bim pour automatiser cette tache
- Comportement, je ne suis pas insatisfait de ce que j'ai fait pour le moment à ce niveau ( système de phases qui appellent des handler qui leur appartiennent à la réception d'un message ), bien que ce soit encore un peu à retravailler, mais on verra plus tard pour ça
- Affichage, un logger joli pour arriver à lire les messages dans la console
- Divers : de part sa construction, cette fois-ci le programme est en théorie capable de gérer plusieurs comptes avec la même instance, j'ai fait ça proprement :)
Bien entendu l'auth aux serveurs de login est fonctionnelle, et le bot n'accuse aucun problème de crash comme c'était le cas avec son prédecesseur.
La consommation de mémoire est probablement un peu excessive, 2 mo chargés une fois que le bot a finit l'auth. Je devrais m'occuper de détruire quelques objets manuellement à différents endroits du code, on verra plus tard pour ça. Il est possible que cette augmentation de consommation de mémoire soit due à l'augmentation de la taille du code ( import de plus de librairies notamment ), et le D est quelque peu gourmand par rapport au C++, rien de dramatique en tout cas pour le moment.
Loading Image
Edit : j'ai testé avec 3 comptes en même temps, le bot fonctionne très bien, et réussit les trois logins en parallèle. L'augmentation de mémoire est minime ( de l'ordre de quelques kb ), donc je confirme que c'est bel et bien multithreadé correctement, et multicompte. Et du coup aucun soucis de mémoire.