Riferimenti per il file hyppocampus.h

#include <libhyppo.h>
#include <stdio.h>
#include <ctype.h>
#include <wchar.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/xattr.h>
#include <attr/xattr.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/statvfs.h>
#include <glib.h>
#include <fuse.h>

Strutture dati

struct  HyppoSB
struct  StateDesc
struct  HyppoNode
struct  HyppoNodeC
struct  OpenFileDesc
struct  SQLAtom
struct  SQL_over_Hyppo

Definizioni

#define _LARGEFILE64_SOURCE
#define __USE_LARGEFILE64
#define _FILE_OFFSET_BITS   64
#define _GNU_SOURCE   1
#define _XOPEN_SOURCE   600
#define FUSE_USE_VERSION   25
#define HYPPO_VERSION_MAJOR   0
#define HYPPO_VERSION_MINOR   1
#define HYPPOCAMPUS_SYSTEM_FILENAME   ".hyppo"
#define HEADER_INODE_IDENTIFIER   0xFFFFFFFFLL
#define EMPTY_INODE_IDENTIFIER   0x00000000LL
#define HYPPO_MAX_VALUE_SIZE   256
#define MAX_NODES_IN_CACHE   100
#define INODES_IN_ARRAY   100
#define META_KEY_HASH   10
#define FREE_BLOCKS_OFFSET   128
#define DEBUG
#define DBG()

Tipi enumerati (enum)

enum  BOOLEAN_OPERATORS { SQL_INVALID_OP, SQL_OP_AND, SQL_OP_OR }
enum  COMPARISON_OPERATOR {
  EQUAL_OP, MINOR_OP, MAJOR_OP, MINOR_EQUAL_OP,
  MAJOR_EQUAL_OP, MATCH_OP, CONTAIN_OP, REGEXP_OP,
  END_OPS
}


Documentazione delle definizioni

#define _LARGEFILE64_SOURCE

#define __USE_LARGEFILE64

#define _FILE_OFFSET_BITS   64

#define _GNU_SOURCE   1

#define _XOPEN_SOURCE   600

#define FUSE_USE_VERSION   25

#define HYPPO_VERSION_MAJOR   0

Major version della qui presente versione di Hyppocampus

#define HYPPO_VERSION_MINOR   1

Minor version della qui presente versione di Hyppocampus

#define HYPPOCAMPUS_SYSTEM_FILENAME   ".hyppo"

File che conserva la struttura del filesystem simulato per mezzo di FUSE

#define HEADER_INODE_IDENTIFIER   0xFFFFFFFFLL

Identificativo di header: se un nodo (HyppoNode) presenta nel campo "prev" questo valore, indica che li inizia un nuovo array di metadati, il cui tipo e' specificato nel campo "file" del nodo stesso

#define EMPTY_INODE_IDENTIFIER   0x00000000LL

Identificativo di un nodo vuoto: questo valore viene testato col campo "prev" di un nodo (HyppoNode), ma in realta' l'intero elemento dovrebbe essere settato a 0

#define HYPPO_MAX_VALUE_SIZE   256

Dimensione massima del campo "value" del nodo (HyppoNode), ovvero la grandezza massima del metadato che puo' ospitare

#define MAX_NODES_IN_CACHE   100

Numero massimo di elementi tenuti nella cache interna

Vedi anche:
get_node()

#define INODES_IN_ARRAY   100

Numero di metadati ammessi all'interno di una partizione relazionale

#define META_KEY_HASH   10

Numero di partizioni relazionali installate

#define FREE_BLOCKS_OFFSET   128

Offset presso cui si trova il numero di nodi vuoti all'interno di un array di metadati nella rappresentazione dell'header dell'array stesso

#define DEBUG

 
#define DBG (  ) 

Valore:

G_STMT_START {                                                  \
        fprintf ( stderr, "DBG[%5d] %20s(): ", __LINE__, __FUNCTION__ );                \
        fprintf ( stderr, __VA_ARGS__ );                                                \
        fprintf ( stderr, "\n" );                                                       \
} G_STMT_END
Piccola macro di debug, utile per aggiungere e rimuovere le stampe che accompagnano l'esecuzione delle diverse funzioni. Per renderla effettiva, definire la costante "DEBUG" in fase di compilazione


Documentazione dei tipi enumerati

enum BOOLEAN_OPERATORS

Operatori booleani ammessi per la concatenazione degli statements SQL durante le richieste al filesystem

Valori dei tipi enumerati:
SQL_INVALID_OP  Operatore invalido: in SQLAtom::bool_op e SQL_over_Hyppo::m_operator indica che la struttura rappresenta un insieme di valori e non un operatore booleano
SQL_OP_AND  AND insiemistico: vanno prelevati gli elementi che si trovano nell'intersezione tra l'insieme a destra e l'insieme a sinistra dell'operatore
SQL_OP_OR  OR insiemistico: vanno prelevati tutti gli elementi che si trovano nell'insieme a destra e nell'insieme a sinistra dell'operatore

enum COMPARISON_OPERATOR

Operatori ammessi per il confronto tra un metadato ed un valore. Qui vengono elencati tutti quelli previsti, ma essi si dividono in base alla natura del metadato richiesto e al tipo di valore che ammette

Valori dei tipi enumerati:
EQUAL_OP 
MINOR_OP 
MAJOR_OP 
MINOR_EQUAL_OP 
MAJOR_EQUAL_OP 
MATCH_OP 
CONTAIN_OP 
REGEXP_OP 
END_OPS 


Generato il Thu Aug 10 16:04:58 2006 per Hyppocampus da  doxygen 1.4.7