-/* $Id: mfile.h,v 1.10 2006-11-14 12:41:19 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) 2004-2013 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
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
*/
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
*/
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
\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
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