]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/idx.h
* Se agrega campo Ubicacion, que parecia que no iba pero me confirmaron que
[z.facultad/75.06/emufs.git] / emufs / idx.h
1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2  *----------------------------------------------------------------------------
3  *                                  emufs
4  *----------------------------------------------------------------------------
5  * This file is part of emufs.
6  *
7  * emufs is free software; you can redistribute it and/or modify it under the
8  * terms of the GNU General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option) any later
10  * version.
11  *
12  * emufs is distributed in the hope that it will be useful, but WITHOUT ANY
13  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15  * details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with emufs; if not, write to the Free Software Foundation, Inc., 59 Temple
19  * Place, Suite 330, Boston, MA  02111-1307  USA
20  *----------------------------------------------------------------------------
21  * Creado:  jue abr  8 18:11:46 ART 2004
22  * Autores: Nicolás Dimov <sagardua@uolsinectis.com.ar>
23  *          Leandro Lucarella <llucare@fi.uba.ar>
24  *----------------------------------------------------------------------------
25  *
26  * $Id$
27  *
28  */
29
30 /** \file
31  *
32  * Manejo de archivos de índice de registros.
33  * 
34  * Interfaz del manejo de archivos de índice de registros.
35  *
36  */
37
38 #ifndef _EMUFS_IDX_H
39 #define _EMUFS_IDX_H
40
41 #include <string.h>
42 #include <unistd.h>
43 #include "emufs.h"
44
45 #define EMUFS_IDX_EXT ".idx"
46
47 typedef struct emufs_idx_t {
48         EMUFS_REG_ID id_reg;
49         EMUFS_BLOCK_ID location;
50 } EMUFS_IDX;
51
52 FILE* emufs_idx_abrir(EMUFS*, const char*);
53
54 int emufs_idx_crear(EMUFS*);
55
56 EMUFS_REG_ID emufs_idx_buscar_mayor_id_libre(EMUFS*, int*);
57
58 EMUFS_BLOCK_ID emufs_idx_buscar_registro(EMUFS*, EMUFS_REG_ID);
59
60 int emufs_idx_agregar(EMUFS*, EMUFS_BLOCK_ID, EMUFS_REG_ID);
61
62 int emufs_idx_borrar(EMUFS*, EMUFS_REG_ID);
63
64 /** Retorna un array con los Ids validos del archivo IDX
65  *
66  *  EL ARRAY DEBE SER LIBERADO!
67  *  \param emu EMUFS
68  *  \param cant Puntero donde guardar la cantidad de items
69  */
70 EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant);
71
72 EMUFS_REG_ID emufs_idx_get_new_id(EMUFS*, int*);
73
74 int emufs_idx_existe_id(EMUFS *emu, int ID);
75
76 int emufs_idx_actualizar(EMUFS *emu, int ID, EMUFS_BLOCK_ID bloque);
77
78 #endif /* _EMUFS_IDX_H */