# Complexité Cyclomatique - Projet ping-report ## ping-report.c - `main()` : **4** ## daemon.c - `create_daemon()` : **4** - `ping_request()` : **2** - `send_check()` : **3** - `check_keep_working()` : **4** - `daemon_work()` : **3** ## db-sqlite.c - `db_connect()` : **1** - `db_disconnect()` : **1** - `insert_hourly_report()` : **1** ## utils.c - `write_pid_file()` : **2** - `remove_file()` : **1** ## stats.c - `get_ping_from_temp_log()` : **14** → **3** (refactorisé) - `write_ping_log()` : **4** - `set_stats_ping()` : **12** → **3** (refactorisé) ## Améliorations apportées ### Fonctions refactorisées (complexité > 6) **1. `get_ping_from_temp_log()` : 14 → 3** - Divisée en 5 fonctions d'aide - Chaque fonction fait une seule chose - Plus facile à tester et déboguer **2. `set_stats_ping()` : 12 → 3** - Divisée en 3 fonctions d'aide - Structure PingStats pour clarifier - Logique de calcul séparée ### Avantages (comme vu en cours) - Code plus lisible - Maintenance plus simple (si un developpeur veut changer une donnée, il peut le faire à un seul endroit pour que tout puisse changer. Cela évite aussi de copier coller des bouts de codes ) - Tests unitaires possibles - Réutilisabilité des fonctions d'aide ### Le calcul de la complexité de chaque fonction modifiée a été mise en commentaire directement.