/*********************************************************/
/*    Autori:                                            */
/*            Pelosi Giovanni, 346787, pelosi            */
/*            Pesce  Agatino,  456868, pesce             */
/*                                                       */
/*  Progetto: Sistemi 2: biblioteca                      */
/*  Data Pr.: 9/2/96                                     */
/*      File: libro.h                                    */
/*                                                       */
/*********************************************************/

#ifndef _LIBRO_H
#define _LIBRO_H

#include <stdio.h>

#define TRUE 1
#define FALSE 0

#define LEN_TITOLO 41
#define LEN_AUTORE    LEN_TITOLO
#define LEN_ANNO      5

typedef struct Libro_tag
{
  char Titolo[LEN_TITOLO];
  char Autore[LEN_AUTORE];
  char Anno[LEN_ANNO];
} Libro_t;

/*
 * Stampa video un libro (per debug)
 */
void DumpLibro(Libro_t* pLibro);

/*
 * Inizializzazione modulo libro
 */
int InitLibro(char* file);

/*
 * ... modulo libro
 */
int ExitLibro(void);

/*
 *  Restituisce un puntatore alla static Libro
 */
Libro_t* RetrieveLibro(void);

/*
 *  Legge il Record alla posizione corrente
 *       Restituisce TRUE se tutto OK, FALSE altrimenti
 */
int LeggiLibro(void);

/*
 *      Aggiunge il Record in fondo al file
 */
int AppendLibro(Libro_t* pLibro);

/*
 *     Cerca il prossimo libro dopo la posizione Start. Start=0 primo libro
 *  Restituisce la posizione del Libro trovato. 0 su ricerca fallita
 */
long SearchLibro(Libro_t * pPattern, long Start);

#endif