huffman/inc/arguments.h

49 lines
1.1 KiB
C

/**
* @file
* @brief Interprétation des arguments (options et opérandes) passés
* au programme
*/
#ifndef __HUFFMAN_ARGUMENTS_H_INCLUDED__
#define __HUFFMAN_ARGUMENTS_H_INCLUDED__
#include <stdio.h>
#include <argp.h>
/**
* @brief Valeurs des arguments (options et opérandes) passés au programme.
*/
typedef struct Args {
/**
* Lance-t-on le programme en mode verbeux ? (informations de débogage)
*/
int verbose;
/**
* Compresse-t-on la source ou bien la décompresse-t-on ?
*/
int compress;
/**
* Fichier source de l'opération à effectuer
*/
FILE* source;
/**
* Fichier de sortie de l'opération effectuée
*/
FILE* dest;
} Args;
/**
* @brief Interpréter l'argument @p key de valeur @p arg dans
* la structure argp d'état @p state
*
* @param key Clé de l'option, ou clé spéciale pour indiquer une opérande
* @param arg Valeur de l'option ou de l'opérande
* @param state État actuel de argp
*/
error_t parseArgument(int key, char* arg, struct argp_state* state);
#endif // __HUFFMAN_ARGUMENTS_H_INCLUDED__