huffman/inc/display.h

70 lines
1.8 KiB
C

/**
* @file
* @brief Gestion de l'affichage.
*/
#ifndef __HUFFMAN_DISPLAY_H_INCLUDED__
#define __HUFFMAN_DISPLAY_H_INCLUDED__
#include <stdlib.h>
#include "common.h"
//! \{
typedef struct HufVertex HufVertex;
typedef HufVertex* HufTree;
//! \}
/**
* @brief Écrire un message de débogage sur la sortie d'erreurs.
*
* Cette fonction n'a aucun effet si l'affichage des messages de débogage
* ne sont pas activés, sinon le message est affiché dans @c stderr.
* @param format Format d'affichage à la printf.
* @param ... Variables pour l'affichage.
*/
void printVerbose(const char* format, ...);
/**
* @brief Activer ou désactiver l'affichage des messages de débogage.
*
* Si le paramètre est vrai, les appels suivants à @c printVerbose seront
* affichés sur la sortie d'erreurs. Sinon, ils n'auront aucun effet.
* @param enable Activer ou désactiver l'affichage.
*/
void setVerbose(int enable);
/**
* @brief Vérifie si les messages de débogage sont activés ou non.
*/
int isVerbose();
/**
* @brief Afficher sur la sortie d'erreurs une représentation de l'arbre
* passé en paramètre.
*
* @param tree L'arbre à afficher.
*/
void printTree(HufTree tree);
/**
* @brief Afficher sur la sortie d'erreurs le tableau associant les caractères
* à leur effectif d'apparition passé en argument.
*
* @param counts Tableau d'association des effectifs.
* @param total Nombre total de caractères.
* @param size Taille du tableau @p counts.
*/
void printCountsTable(bytecount* counts, bytecount total, size_t size);
/**
* *@brief Afficher sur la sortie d'erreurs le tableau associant les caractères
* à leur étiquette passé en argument.
*
* @param labels Tableau d'association des étiquettes.
* @param size Taille du tableau @p labels.
*/
void printLabelsTable(char** labels, size_t size);
#endif // __HUFFMAN_DISPLAY_H_INCLUDED__