Biomedical Image Analysis Library
The Biomedical Image Analysis Library is a poweful tool for developers, physicians, researchers, engineers, and so on.
gzlog.c File Reference
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <time.h>
#include <sys/stat.h>
#include <sys/time.h>
#include "zlib.h"
#include "gzlog.h"
Include dependency graph for gzlog.c:

Go to the source code of this file.

Classes

struct  log
 

Macros

#define local   static
 
#define BAIL(n)
 
#define PATIENCE   300
 
#define MAX_STORE   16
 
#define TRIGGER   1024
 
#define DICT   32768U
 
#define NO_OP   0
 
#define APPEND_OP   1
 
#define COMPRESS_OP   2
 
#define REPLACE_OP   3
 
#define PULL2(p)   ((p)[0]+((uint)((p)[1])<<8))
 
#define PULL4(p)   (PULL2(p)+((ulong)PULL2(p+2)<<16))
 
#define PULL8(p)   (PULL4(p)+((off_t)PULL4(p+4)<<32))
 
#define PUT2(p, a)   do {(p)[0]=a;(p)[1]=(a)>>8;} while(0)
 
#define PUT4(p, a)   do {PUT2(p,a);PUT2(p+2,a>>16);} while(0)
 
#define PUT8(p, a)   do {PUT4(p,a);PUT4(p+4,a>>32);} while(0)
 
#define LOGID   "\106\035\172" /* should be three non-zero characters */
 
#define HEAD   sizeof(log_gzhead) /* should be 16 */
 
#define EXTRA   sizeof(log_gzext) /* should be 35 */
 
#define BODY   sizeof(log_gzbody)
 

Typedefs

typedef unsigned int uint
 
typedef unsigned long ulong
 

Functions

static int log_lock (struct log *log)
 
static void log_touch (struct log *log)
 
static int log_check (struct log *log)
 
static void log_unlock (struct log *log)
 
static int log_head (struct log *log)
 
static int log_mark (struct log *log, int op)
 
static int log_last (struct log *log, int last)
 
static int log_append (struct log *log, unsigned char *data, size_t len)
 
static int log_replace (struct log *log)
 
static int log_compress (struct log *log, unsigned char *data, size_t len)
 
static void log_log (struct log *log, int op, char *record)
 
static int log_recover (struct log *log, int op)
 
static void log_close (struct log *log)
 
static int log_open (struct log *log)
 
gzloggzlog_open (char *path)
 
int gzlog_compress (gzlog *logd)
 
int gzlog_write (gzlog *logd, void *data, size_t len)
 
int gzlog_close (gzlog *logd)
 

Variables

static unsigned char log_gzhead []
 
static unsigned char log_gzext []
 
static unsigned char log_gzbody []
 

Class Documentation

struct log

Definition at line 289 of file gzlog.c.

Collaboration diagram for log:
Collaboration graph
Class Members
int back
ulong ccrc
ulong clen
char * end
int fd
off_t first
char id[4]
off_t last
time_t lock
char * path
uint stored
ulong tcrc
ulong tlen

Macro Definition Documentation

#define APPEND_OP   1

Definition at line 273 of file gzlog.c.

#define BAIL (   n)

Definition at line 254 of file gzlog.c.

#define BODY   sizeof(log_gzbody)

Definition at line 337 of file gzlog.c.

#define COMPRESS_OP   2

Definition at line 274 of file gzlog.c.

#define DICT   32768U

Definition at line 269 of file gzlog.c.

#define EXTRA   sizeof(log_gzext) /* should be 35 */

Definition at line 328 of file gzlog.c.

#define HEAD   sizeof(log_gzhead) /* should be 16 */

Definition at line 316 of file gzlog.c.

#define local   static

Definition at line 241 of file gzlog.c.

#define LOGID   "\106\035\172" /* should be three non-zero characters */

Definition at line 288 of file gzlog.c.

#define MAX_STORE   16

Definition at line 261 of file gzlog.c.

#define NO_OP   0

Definition at line 272 of file gzlog.c.

#define PATIENCE   300

Definition at line 258 of file gzlog.c.

#define PULL2 (   p)    ((p)[0]+((uint)((p)[1])<<8))

Definition at line 278 of file gzlog.c.

#define PULL4 (   p)    (PULL2(p)+((ulong)PULL2(p+2)<<16))

Definition at line 279 of file gzlog.c.

#define PULL8 (   p)    (PULL4(p)+((off_t)PULL4(p+4)<<32))

Definition at line 280 of file gzlog.c.

#define PUT2 (   p,
 
)    do {(p)[0]=a;(p)[1]=(a)>>8;} while(0)

Definition at line 283 of file gzlog.c.

#define PUT4 (   p,
 
)    do {PUT2(p,a);PUT2(p+2,a>>16);} while(0)

Definition at line 284 of file gzlog.c.

#define PUT8 (   p,
 
)    do {PUT4(p,a);PUT4(p+4,a>>32);} while(0)

Definition at line 285 of file gzlog.c.

#define REPLACE_OP   3

Definition at line 275 of file gzlog.c.

#define TRIGGER   1024

Definition at line 266 of file gzlog.c.

Typedef Documentation

typedef unsigned int uint

Definition at line 242 of file gzlog.c.

typedef unsigned long ulong

Definition at line 243 of file gzlog.c.

Function Documentation

int gzlog_close ( gzlog logd)

Definition at line 1042 of file gzlog.c.

int gzlog_compress ( gzlog logd)

Definition at line 908 of file gzlog.c.

gzlog* gzlog_open ( char *  path)

Definition at line 865 of file gzlog.c.

int gzlog_write ( gzlog logd,
void *  data,
size_t  len 
)

Definition at line 995 of file gzlog.c.

static int log_append ( struct log log,
unsigned char *  data,
size_t  len 
)
static

Definition at line 501 of file gzlog.c.

static int log_check ( struct log log)
static

Definition at line 384 of file gzlog.c.

static void log_close ( struct log log)
static

Definition at line 796 of file gzlog.c.

static int log_compress ( struct log log,
unsigned char *  data,
size_t  len 
)
static

Definition at line 608 of file gzlog.c.

static int log_head ( struct log log)
static

Definition at line 410 of file gzlog.c.

static int log_last ( struct log log,
int  last 
)
static

Definition at line 462 of file gzlog.c.

static int log_lock ( struct log log)
static

Definition at line 348 of file gzlog.c.

static void log_log ( struct log log,
int  op,
char *  record 
)
static

Definition at line 718 of file gzlog.c.

static int log_mark ( struct log log,
int  op 
)
static

Definition at line 437 of file gzlog.c.

static int log_open ( struct log log)
static

Definition at line 813 of file gzlog.c.

static int log_recover ( struct log log,
int  op 
)
static

Definition at line 738 of file gzlog.c.

static int log_replace ( struct log log)
static

Definition at line 571 of file gzlog.c.

static void log_touch ( struct log log)
static

Definition at line 372 of file gzlog.c.

static void log_unlock ( struct log log)
static

Definition at line 396 of file gzlog.c.

Variable Documentation

unsigned char log_gzbody[]
static
Initial value:
= {
1, 0, 0, 0xff, 0xff,
0, 0, 0, 0,
0, 0, 0, 0
}

Definition at line 331 of file gzlog.c.

unsigned char log_gzext[]
static
Initial value:
= {
52, 0, 0, 0, 0, 0, 0, 0,
52, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0,
5
}

Definition at line 319 of file gzlog.c.

unsigned char log_gzhead[]
static
Initial value:
= {
0x1f, 0x8b,
8,
4,
0, 0, 0, 0,
0, 0xff,
39, 0, 'a', 'p', 35, 0
}

Definition at line 306 of file gzlog.c.