Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Macros | Typedefs | Functions | Variables
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"

Go to the source code of this file.

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

local int log_lock (struct log *log)
 
local void log_touch (struct log *log)
 
local int log_check (struct log *log)
 
local void log_unlock (struct log *log)
 
local int log_head (struct log *log)
 
local int log_mark (struct log *log, int op)
 
local int log_last (struct log *log, int last)
 
local int log_append (struct log *log, unsigned char *data, size_t len)
 
local int log_replace (struct log *log)
 
local int log_compress (struct log *log, unsigned char *data, size_t len)
 
local void log_log (struct log *log, int op, char *record)
 
local int log_recover (struct log *log, int op)
 
local void log_close (struct log *log)
 
local 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

local unsigned char log_gzhead []
 
local unsigned char log_gzext []
 
local unsigned char log_gzbody []
 

Macro Definition Documentation

◆ APPEND_OP

#define APPEND_OP   1

Definition at line 273 of file gzlog.c.

Referenced by gzlog_write(), log_log(), and log_recover().

◆ BAIL

#define BAIL (   n)

Definition at line 254 of file gzlog.c.

Referenced by gzlog_compress(), gzlog_write(), log_append(), log_compress(), and log_replace().

◆ BODY

#define BODY   sizeof(log_gzbody)

Definition at line 337 of file gzlog.c.

Referenced by log_open().

◆ COMPRESS_OP

#define COMPRESS_OP   2

Definition at line 274 of file gzlog.c.

Referenced by gzlog_compress(), log_log(), and log_recover().

◆ DICT

#define DICT   32768U

Definition at line 269 of file gzlog.c.

Referenced by gzlog_compress(), and log_compress().

◆ EXTRA

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

Definition at line 328 of file gzlog.c.

Referenced by log_head(), log_mark(), and log_open().

◆ HEAD

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

Definition at line 316 of file gzlog.c.

Referenced by log_head(), log_mark(), and log_open().

◆ local

#define local   static

Definition at line 241 of file gzlog.c.

◆ LOGID

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

Definition at line 288 of file gzlog.c.

Referenced by gzlog_close(), gzlog_compress(), gzlog_open(), and gzlog_write().

◆ MAX_STORE

#define MAX_STORE   16

Definition at line 261 of file gzlog.c.

Referenced by log_append().

◆ NO_OP

#define NO_OP   0

Definition at line 272 of file gzlog.c.

Referenced by log_append(), log_open(), and log_replace().

◆ PATIENCE

#define PATIENCE   300

Definition at line 258 of file gzlog.c.

Referenced by log_lock().

◆ PULL2

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

Definition at line 278 of file gzlog.c.

Referenced by gzlog_compress(), and log_head().

◆ PULL4

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

Definition at line 279 of file gzlog.c.

Referenced by log_head().

◆ PULL8

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

Definition at line 280 of file gzlog.c.

Referenced by log_head().

◆ PUT2

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

Definition at line 283 of file gzlog.c.

Referenced by log_last(), and log_mark().

◆ PUT4

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

Definition at line 284 of file gzlog.c.

Referenced by log_append(), log_compress(), and log_mark().

◆ PUT8

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

Definition at line 285 of file gzlog.c.

Referenced by log_mark().

◆ REPLACE_OP

#define REPLACE_OP   3

Definition at line 275 of file gzlog.c.

Referenced by log_compress(), and log_recover().

◆ TRIGGER

#define TRIGGER   1024

Definition at line 266 of file gzlog.c.

Referenced by gzlog_write().

Typedef Documentation

◆ uint

typedef unsigned int uint

Definition at line 242 of file gzlog.c.

◆ ulong

typedef unsigned long ulong

Definition at line 243 of file gzlog.c.

Function Documentation

◆ gzlog_close()

int gzlog_close ( gzlog logd)

Definition at line 1042 of file gzlog.c.

References free(), vl::log(), log_close(), LOGID, and NULL.

◆ gzlog_compress()

int gzlog_compress ( gzlog logd)

◆ gzlog_open()

gzlog* gzlog_open ( char *  path)

Definition at line 865 of file gzlog.c.

References free(), vl::log(), log_open(), LOGID, malloc(), and NULL.

◆ gzlog_write()

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

◆ log_append()

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

Definition at line 501 of file gzlog.c.

References BAIL, crc32(), if(), log_last(), log_mark(), lseek(), MAX_STORE, NO_OP, PUT4, SEEK_CUR, and write().

Referenced by gzlog_write(), and log_recover().

◆ log_check()

local int log_check ( struct log *  log)

Definition at line 384 of file gzlog.c.

References log_touch().

Referenced by gzlog_compress(), gzlog_write(), and log_unlock().

◆ log_close()

local void log_close ( struct log *  log)

Definition at line 796 of file gzlog.c.

References close(), and log_unlock().

Referenced by gzlog_close(), and log_open().

◆ log_compress()

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

◆ log_head()

local int log_head ( struct log *  log)

Definition at line 410 of file gzlog.c.

References EXTRA, HEAD, log_gzhead, lseek(), PULL2, PULL4, PULL8, read(), and SEEK_SET.

Referenced by log_open().

◆ log_last()

local int log_last ( struct log *  log,
int  last 
)

Definition at line 462 of file gzlog.c.

References lseek(), PUT2, read(), SEEK_CUR, SEEK_SET, and write().

Referenced by log_append(), and log_compress().

◆ log_lock()

local int log_lock ( struct log *  log)

Definition at line 348 of file gzlog.c.

References close(), NULL, open(), and PATIENCE.

Referenced by log_open().

◆ log_log()

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

Definition at line 718 of file gzlog.c.

References APPEND_OP, COMPRESS_OP, and NULL.

Referenced by log_recover().

◆ log_mark()

local int log_mark ( struct log *  log,
int  op 
)

Definition at line 437 of file gzlog.c.

References EXTRA, HEAD, lseek(), PUT2, PUT4, PUT8, SEEK_SET, and write().

Referenced by gzlog_compress(), gzlog_write(), log_append(), log_compress(), and log_replace().

◆ log_open()

local int log_open ( struct log *  log)

◆ log_recover()

local int log_recover ( struct log *  log,
int  op 
)

◆ log_replace()

local int log_replace ( struct log *  log)

Definition at line 571 of file gzlog.c.

References BAIL, free(), log_mark(), malloc(), NO_OP, and NULL.

Referenced by log_compress(), and log_recover().

◆ log_touch()

local void log_touch ( struct log *  log)

Definition at line 372 of file gzlog.c.

References NULL.

Referenced by gzlog_compress(), gzlog_write(), log_check(), log_compress(), and log_open().

◆ log_unlock()

local void log_unlock ( struct log *  log)

Definition at line 396 of file gzlog.c.

References log_check().

Referenced by log_close().

Variable Documentation

◆ log_gzbody

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

Definition at line 331 of file gzlog.c.

Referenced by log_open().

◆ log_gzext

local unsigned char log_gzext[]
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.

Referenced by log_open().

◆ log_gzhead

local unsigned char log_gzhead[]
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.

Referenced by log_head(), and log_open().