X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=bfile%2Fmfile.h;h=81cd2245b5ef62f6846909865d5910e9aa5d5b25;hp=2c7deb6497ee95170d2415ad93964417c9135c45;hb=HEAD;hpb=0f78f3fe78e859d9f0d3f0d3e13fcd28085dd427 diff --git a/bfile/mfile.h b/bfile/mfile.h index 2c7deb6..81cd224 100644 --- a/bfile/mfile.h +++ b/bfile/mfile.h @@ -1,8 +1,5 @@ -/* $Id: mfile.h,v 1.9 2006-11-14 08:12:06 adam Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -26,6 +23,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include +#include #ifdef WIN32 @@ -92,22 +90,24 @@ typedef struct meta_file struct meta_file *next; } *MFile, meta_file; -typedef struct MFile_area_struct +struct MFile_area_struct { char name[FILENAME_MAX+1]; mf_dir *dirs; struct meta_file *mfiles; struct MFile_area_struct *next; /* global list of active areas */ Zebra_mutex mutex; -} MFile_area_struct; +}; /** \brief creates a metafile area \param name of area (does not show up on disk - purely for notation) \param spec area specification (e.g. "/a:1G dir /b:2000M" \param base base directory (NULL for no base) + \param only_shadow_files only consider shadow files in area \returns metafile area handle or NULL if error occurs */ -MFile_area mf_init(const char *name, const char *spec, const char *base) +MFile_area mf_init(const char *name, const char *spec, const char *base, + int only_shadow_files) ZEBRA_GCC_ATTR((warn_unused_result)); /** \brief destroys metafile area handle @@ -124,7 +124,7 @@ void mf_destroy(MFile_area ma); */ MFile mf_open(MFile_area ma, const char *name, int block_size, int wflag) ZEBRA_GCC_ATTR((warn_unused_result)); - + /** \brief closes metafile \param mf metafile handle \retval 0 OK @@ -143,7 +143,7 @@ int mf_close(MFile mf); */ int mf_read(MFile mf, zint no, int offset, int nbytes, void *buf) ZEBRA_GCC_ATTR((warn_unused_result)); - + /** \brief writes block to metafile \param mf metafile handle \param no block position @@ -154,8 +154,8 @@ int mf_read(MFile mf, zint no, int offset, int nbytes, void *buf) \retval -1 error (block not written) */ int mf_write(MFile mf, zint no, int offset, int nbytes, const void *buf) - ZEBRA_GCC_ATTR((warn_unused_result)); - + ZEBRA_GCC_ATTR((warn_unused_result)); + /** \brief reset all files in a metafile area (optionally delete them as well) \param ma metafile area \param unlink_flag if unlink_flag=1 all files are removed from FS @@ -175,16 +175,17 @@ void mf_reset(MFile_area ma, int unlink_flag); on same platform depending on whether 64-bit is enabled or not. Note that if an area has unlimited size, that is represented as max_bytes = -1. -*/ +*/ int mf_area_directory_stat(MFile_area ma, int no, const char **directory, double *bytes_used, double *bytes_max); - + YAZ_END_CDECL #endif /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab