]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/external_sort/extsort.h
Se genera la biblioteca compartida libextsort.a
[z.facultad/75.06/emufs.git] / emufs / external_sort / extsort.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:  dom may 30 07:48:10 ART 2004
22  * Autores: Leandro Lucarella <llucare@fi.uba.ar>
23  *----------------------------------------------------------------------------
24  *
25  * $Id$
26  *
27  */
28
29 /** \file
30  *
31  * Algoritmo de ordenamiento externo.
32  * 
33  * Interfaz del algoritmo de ordenamiento externo.
34  *
35  */
36
37 #ifndef _EXTSORT_EXTSORT_H_
38 #define _EXTSORT_EXTSORT_H_
39
40 #include "base.h"
41 #include <stdlib.h>
42
43 /** Ordena un archivo utilizando un método de ordenamiento externo.
44  *
45  * \param filename Nombre del archivo a ordenar.
46  * \param buf_size Tamaño del buffer en bytes.
47  * \param reg_size Tamaño de un registro en bytes.
48  * \param cmp Función de ordenamiento a utilizar (ver base.h).
49  * \return 0 si hubo un error.
50  * \warning Si se usa el archivo original para almacenar los resultados, si
51  *          llegara a haber un problema en el ordenamiento se puede perder el
52  *          archivo original.
53  */
54 int extsort(const char* filename, size_t buf_size, size_t reg_size,
55                 CMP_FUNC cmp);
56
57 /** Ordena un archivo utilizando un método de ordenamiento externo en otro.
58  *
59  * \param filename Nombre del archivo a ordenar.
60  * \param new_filename Nombre del archivo donde dejar el resultado, si es NULL,
61  *                     se utiliza el archivo original.
62  * \param buf_size Tamaño del buffer en bytes.
63  * \param reg_size Tamaño de un registro en bytes.
64  * \param cmp Función de ordenamiento a utilizar (ver base.h).
65  * \return 0 si hubo un error.
66  * \warning Si se usa el archivo original para almacenar los resultados, si
67  *          llegara a haber un problema en el ordenamiento se puede perder el
68  *          archivo original.
69  */
70 int extsort_safe(const char* filename, const char* new_filename,
71                 size_t buf_size, size_t reg_size, CMP_FUNC cmp);
72
73 #endif /* _EXTSORT_EXTSORT_H_ */
74