OpenCPN Partial API docs
Loading...
Searching...
No Matches
zu_file.h File Reference

Unified Compressed File Access System. More...

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <zlib.h>
#include <bzlib.h>

Go to the source code of this file.

Classes

struct  ZUFILE
 

Macros

#define ZU_COMPRESS_AUTO   (-1)
 
#define ZU_COMPRESS_NONE   0
 
#define ZU_COMPRESS_GZIP   1
 
#define ZU_COMPRESS_BZIP   2
 
#define ZU_BUFREADSIZE   256000
 

Functions

ZUFILEzu_open (const char *fname, const char *mode, int type=ZU_COMPRESS_AUTO)
 
int zu_close (ZUFILE *f)
 
int zu_can_read_file (const char *fname)
 
int zu_read (ZUFILE *f, void *buf, long len)
 
long zu_tell (ZUFILE *f)
 
int zu_seek (ZUFILE *f, long offset, int whence)
 
void zu_rewind (ZUFILE *f)
 
long zu_filesize (ZUFILE *f)
 
int zu_bzSeekForward (ZUFILE *f, unsigned long nbytes)
 

Detailed Description

Unified Compressed File Access System.

Provides a consistent interface for reading both compressed and uncompressed GRIB files with support for:

  • Uncompressed files
  • GZIP compression (.gz)
  • BZIP2 compression (.bz2)

Features:

  • Transparent compression detection
  • Unified file operations (open, read, seek, tell)
  • Large file support
  • Buffered reading for performance
  • Error handling and validation

This system allows the GRIB plugin to work seamlessly with compressed weather data files while handling the complexities of different compression formats internally.

Definition in file zu_file.h.

Macro Definition Documentation

◆ ZU_BUFREADSIZE

#define ZU_BUFREADSIZE   256000

Definition at line 50 of file zu_file.h.

◆ ZU_COMPRESS_AUTO

#define ZU_COMPRESS_AUTO   (-1)

Definition at line 45 of file zu_file.h.

◆ ZU_COMPRESS_BZIP

#define ZU_COMPRESS_BZIP   2

Definition at line 48 of file zu_file.h.

◆ ZU_COMPRESS_GZIP

#define ZU_COMPRESS_GZIP   1

Definition at line 47 of file zu_file.h.

◆ ZU_COMPRESS_NONE

#define ZU_COMPRESS_NONE   0

Definition at line 46 of file zu_file.h.

Function Documentation

◆ zu_bzSeekForward()

int zu_bzSeekForward ( ZUFILE f,
unsigned long  nbytes 
)

Definition at line 221 of file zu_file.cpp.

◆ zu_can_read_file()

int zu_can_read_file ( const char *  fname)

Definition at line 28 of file zu_file.cpp.

◆ zu_close()

int zu_close ( ZUFILE f)

Definition at line 131 of file zu_file.cpp.

◆ zu_filesize()

long zu_filesize ( ZUFILE f)

Definition at line 162 of file zu_file.cpp.

◆ zu_open()

ZUFILE * zu_open ( const char *  fname,
const char *  mode,
int  type = ZU_COMPRESS_AUTO 
)

Definition at line 40 of file zu_file.cpp.

◆ zu_read()

int zu_read ( ZUFILE f,
void *  buf,
long  len 
)

Definition at line 112 of file zu_file.cpp.

◆ zu_rewind()

void zu_rewind ( ZUFILE f)

Definition at line 244 of file zu_file.cpp.

◆ zu_seek()

int zu_seek ( ZUFILE f,
long  offset,
int  whence 
)

Definition at line 174 of file zu_file.cpp.

◆ zu_tell()

long zu_tell ( ZUFILE f)

Definition at line 159 of file zu_file.cpp.