/*--------------------------------------------------------------------
 * FICHERO:       Config.h
 * OBJETIVO:      Definir el objeto "Configuracin"
 * IDENTIFICADOR: Cnf
 * AUTOR:         Pedro Reina
 * FECHA:         V.14.7.1995
 * OBJETOS UTILIZADOS: Memoria, Cadena, Fichero
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones pblicas
 *
 *   Cnf_Abre()              CnfAbre.c
 *   Cnf_Cierra()            CnfCierr.h
 *   Cnf_Linea()             Config.h
 *   Cnf_Lee()               CnfLee.c
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones conocidas
 *
 *   Ninguna
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones privadas
 *
 *   Cnf_Fichero()           Config.h
 *   Cnf_PonFichero()        Config.h
 *   Cnf_PonLinea()          Config.h
 *   Cnf_IncrementaLinea()   Config.h
 *------------------------------------------------------------------*/

#ifndef _CONFIGURACION_
#define _CONFIGURACION_

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Memoria.h"
#include "Cadena.h"
#include "Fichero.h"

/*--------------------------------------------------------------------
 * Definicin de macros constantes
 *------------------------------------------------------------------*/

    /* Ninguno */

/*--------------------------------------------------------------------
 * Definicin del tipo "config"
 *------------------------------------------------------------------*/
typedef struct {
               fichero Fichero;
               contpos Linea;
               } Cnf_st, *config;

/*--------------------------------------------------------------------
 * Variables globales
 *------------------------------------------------------------------*/

   /* Ninguna */

/*--------------------------------------------------------------------
 * Declaracin de funciones
 *------------------------------------------------------------------*/

config Cnf_Abre();
logico Cnf_Cierra();
cadena Cnf_Lee();

/*--------------------------------------------------------------------
 * Definicin de macros funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * MACRO:    Cnf_Fichero()
 * OBJETIVO: Decir el fichero de una configuracin
 * ENTRADAS: El objeto config
 * SALIDAS:  El fichero
 * EJEMPLO:  Cnf_Fichero ( DatoImpresora )
 *------------------------------------------------------------------*/
#define Cnf_Fichero(c)  ((c)->Fichero)

/*--------------------------------------------------------------------
 * MACRO:    Cnf_PonFichero()
 * OBJETIVO: Anotar el fichero de una configuracin
 * ENTRADAS: El objeto config y el fichero
 * SALIDAS:  El fichero
 * EJEMPLO:  Cnf_PonFichero ( DatoImpresora, Entrada )
 *------------------------------------------------------------------*/
#define Cnf_PonFichero(c,f)  (((c)->Fichero)=(f))

/*--------------------------------------------------------------Olimpo
 * MACRO:    Cnf_Linea()
 * OBJETIVO: Decir el nmero de lnea actual de una
 *           configuracin
 * ENTRADAS: El objeto config
 * SALIDAS:  El nmero de lnea
 * EJEMPLO:  Cnf_Linea ( DatoImpresora )
 *------------------------------------------------------------------*/
#define Cnf_Linea(c)  ((c)->Linea)

/*--------------------------------------------------------------------
 * MACRO:    Cnf_PonLinea()
 * OBJETIVO: Anotar el nmero de lnea de una configuracin
 * ENTRADAS: El objeto config y el nmero de lnea
 * SALIDAS:  El nmero de lnea
 * EJEMPLO:  Cnf_PonLinea ( DatoImpresora, 7 )
 *------------------------------------------------------------------*/
#define Cnf_PonLinea(c,f)  (((c)->Linea)=(f))

/*--------------------------------------------------------------------
 * MACRO:    Cnf_IncrementaLinea()
 * OBJETIVO: Incrementar el nmero de lnea de una configuracin
 * ENTRADAS: El objeto config
 * SALIDAS:  El nuevo nmero de lnea
 * EJEMPLO:  Cnf_IncrementaLinea ( DatoImpresora )
 *------------------------------------------------------------------*/
#define Cnf_IncrementaLinea(c)  (((c)->Linea)++)

#endif /* _CONFIGURACION_ */