From Harald Welte:
[obnox/wireshark/wip.git] / wiretap / file_wrappers.h
index c5ace299530a7733f1f52eb238e9d5c24842fb9a..5ae970ef6ba689cfcc84f3ecb8d03a80e31bd403 100644 (file)
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
  */
 
 #ifndef __FILE_H__
 #define __FILE_H__
 
-#ifdef HAVE_LIBZ
+#include <glib.h>
+#include <wtap.h>
+#include <wsutil/file_util.h>
+
+extern gint64 file_seek(FILE_T stream, gint64 offset, int whence, int *err);
+extern gint64 file_tell(FILE_T stream);
+extern gint64 file_tell_raw(FILE_T stream);
+extern int file_fstat(FILE_T stream, ws_statb64 *statb, int *err);
+extern int file_error(FILE_T fh, gchar **err_info);
 
-extern FILE_T file_open(const char *path, const char *mode);
-#define filed_open gzdopen
-extern long file_seek(void *stream, long offset, int whence, int *err);
-#define file_read(buf, bsize, count, file) gzread((file),(buf),((count)*(bsize)))
-#define file_write(buf, bsize, count, file) gzwrite((file),(buf),((count)*(bsize)))
-#define file_close gzclose
-extern long file_tell(void *stream);
-#define file_getc gzgetc
-#define file_gets(buf, len, file) gzgets((file), (buf), (len))
-extern int file_error(void *fh);
-#define file_eof gzeof
-
-#else /* No zLib */
-#define file_open(path, mode) eth_fopen(path, mode)
-#define filed_open fdopen
-extern long file_seek(void *stream, long offset, int whence, int *err);
-#define file_read fread
-#define file_write fwrite
-#define file_close fclose
-extern int file_error(FILE *fh);
-#define file_tell ftell
-#define file_getc fgetc
-#define file_gets fgets
-#define file_eof feof
+extern FILE_T file_open(const char *path);
+extern FILE_T filed_open(int fildes);
+extern int file_read(void *buf, unsigned int count, FILE_T file);
+extern int file_close(FILE_T file);
+extern int file_getc(FILE_T stream);
+extern char *file_gets(char *buf, int len, FILE_T stream);
+extern int file_eof(FILE_T stream);
+extern void file_clearerr(FILE_T stream);
+
+extern void file_set_random_access(FILE_T stream, gboolean random, GPtrArray *seek);
+
+#ifdef HAVE_LIBZ
+typedef struct wtap_writer *GZWFILE_T;
 
+extern GZWFILE_T gzwfile_open(const char *path);
+extern GZWFILE_T gzwfile_fdopen(int fd);
+extern unsigned gzwfile_write(GZWFILE_T state, const void *buf, unsigned len);
+extern int gzwfile_flush(GZWFILE_T state);
+extern int gzwfile_close(GZWFILE_T state);
+extern int gzwfile_geterr(GZWFILE_T state);
 #endif /* HAVE_LIBZ */
 
 #endif /* __FILE_H__ */