#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <limits.h>
#include <time.h>
#include <errno.h>
#include <fuse.h>
#include <sqlite3.h>
Struktury danych |
struct | myBuffer_t |
struct | myDB_t |
Definicje |
#define | FUSE_USE_VERSION 26 |
#define | QUERY_COUNT 7 |
#define | READ_ROW_COUNT "20" |
#define | BUF_SIZE_FACTOR 4096 |
#define | BUF_MAX_UNUSED 5 * 60 |
#define | DT_BUF_FACTOR 16 |
#define | DT_MAX_TRIES 4 |
#define | DEBUG(x...) fprintf(stderr, x) |
#define | FUSE_DEBUG ",debug" |
Wyliczenia |
enum | statement_n {
GET_NEWEST,
GET_NEWEST_SESSION,
GET_NEWEST_UID,
GET_SESSIONS,
GET_UIDS,
GET_DATA,
REMOVE_UID
} |
Funkcje |
void | myGC (myDB_t *db) |
int | mySplitPath (const char *path, const char **sid, const char **uid) |
int | myGetAttr (const char *path, struct stat *out) |
int | myReadDir (const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) |
myBuffer_t * | myBufferFind (myDB_t *db, const char *sid, const char *uid, off_t offset) |
const char * | myBodyEscape (const char *in) |
const char * | myTimestampFormat (const time_t timestamp) |
void | myBufferStep (sqlite3_stmt *stmt, myBuffer_t *buf) |
int | myReadFile (const char *path, char *out, size_t count, off_t offset, struct fuse_file_info *fi) |
int | myUnlink (const char *path) |
int | myReleaseFile (const char *path, struct fuse_file_info *fi) |
int | main (int argc, char *argv[]) |
Zmienne |
static const char * | queries [QUERY_COUNT+1] |
static struct fuse_operations | ops |
Dokumentacja definicji
#define BUF_MAX_UNUSED 5 * 60 |
#define BUF_SIZE_FACTOR 4096 |
#define DEBUG |
( |
|
x... | ) |
fprintf(stderr, x) |
#define FUSE_DEBUG ",debug" |
#define FUSE_USE_VERSION 26 |
#define READ_ROW_COUNT "20" |
Dokumentacja typów wyliczanych
- Wartości wyliczeń:
GET_NEWEST |
|
GET_NEWEST_SESSION |
|
GET_NEWEST_UID |
|
GET_SESSIONS |
|
GET_UIDS |
|
GET_DATA |
|
REMOVE_UID |
|
Dokumentacja funkcji
int main |
( |
int |
argc, |
|
|
char * |
argv[] |
|
) |
| |
const char* myBodyEscape |
( |
const char * |
in | ) |
|
myBuffer_t* myBufferFind |
( |
myDB_t * |
db, |
|
|
const char * |
sid, |
|
|
const char * |
uid, |
|
|
off_t |
offset |
|
) |
| |
void myBufferStep |
( |
sqlite3_stmt * |
stmt, |
|
|
myBuffer_t * |
buf |
|
) |
| |
int myGetAttr |
( |
const char * |
path, |
|
|
struct stat * |
out |
|
) |
| |
int myReadDir |
( |
const char * |
path, |
|
|
void * |
buf, |
|
|
fuse_fill_dir_t |
filler, |
|
|
off_t |
offset, |
|
|
struct fuse_file_info * |
fi |
|
) |
| |
int myReadFile |
( |
const char * |
path, |
|
|
char * |
out, |
|
|
size_t |
count, |
|
|
off_t |
offset, |
|
|
struct fuse_file_info * |
fi |
|
) |
| |
int myReleaseFile |
( |
const char * |
path, |
|
|
struct fuse_file_info * |
fi |
|
) |
| |
int mySplitPath |
( |
const char * |
path, |
|
|
const char ** |
sid, |
|
|
const char ** |
uid |
|
) |
| |
const char* myTimestampFormat |
( |
const time_t |
timestamp | ) |
|
int myUnlink |
( |
const char * |
path | ) |
|
Dokumentacja zmiennych
struct fuse_operations ops [static] |
const char* queries[QUERY_COUNT+1] [static] |
Wartość początkowa: {
"SELECT ts FROM log_msg ORDER BY ts DESC LIMIT 1;",
"SELECT ts FROM log_msg WHERE session = ?1 ORDER BY ts DESC LIMIT 1;",
"SELECT ts FROM log_msg WHERE session = ?1 AND uid = ?2 ORDER BY ts DESC LIMIT 1;",
"SELECT DISTINCT session FROM log_msg ORDER BY session ASC LIMIT -1 OFFSET ?1;",
"SELECT DISTINCT uid FROM log_msg WHERE session = ?2 ORDER BY uid ASC LIMIT -1 OFFSET ?1;",
"SELECT type, sent, uid, nick, ts, sentts, body FROM log_msg WHERE session = ?1 AND uid = ?2 ORDER BY ts ASC LIMIT " READ_ROW_COUNT " OFFSET ?3;",
"DELETE FROM log_msg WHERE session = ?1 AND uid = ?2;",
NULL
}