| Camel Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
typedef camel_hash_t; CamelPartitionKey; CamelPartitionKeyBlock; CamelPartitionMap; CamelPartitionMapBlock; CamelPartitionTable; CamelPartitionTable * camel_partition_table_new (struct _CamelBlockFile *bs,camel_block_t root); gint camel_partition_table_sync (CamelPartitionTable *cpi); gint camel_partition_table_add (CamelPartitionTable *cpi,const gchar *key,camel_key_t keyid); camel_key_t camel_partition_table_lookup (CamelPartitionTable *cpi,const gchar *key); void camel_partition_table_remove (CamelPartitionTable *cpi,const gchar *key); CamelKeyBlock; CamelKeyRootBlock; struct CamelKeyKey; #define CAMEL_KEY_TABLE_MAX_KEY CamelKeyTable; CamelKeyTable * camel_key_table_new (CamelBlockFile *bs,camel_block_t root); gint camel_key_table_sync (CamelKeyTable *ki); camel_key_t camel_key_table_add (CamelKeyTable *ki,const gchar *key,camel_block_t data,guint flags); void camel_key_table_set_data (CamelKeyTable *ki,camel_key_t keyid,camel_block_t data); void camel_key_table_set_flags (CamelKeyTable *ki,camel_key_t keyid,guint flags,guint set); camel_block_t camel_key_table_lookup (CamelKeyTable *ki,camel_key_t keyid,gchar **key,guint *flags); camel_key_t camel_key_table_next (CamelKeyTable *ki,camel_key_t next,gchar **keyp,guint *flagsp,camel_block_t *datap);
typedef struct {
guint32 used;
struct _CamelPartitionKey keys[(CAMEL_BLOCK_SIZE-4)/sizeof(struct _CamelPartitionKey)];
} CamelPartitionKeyBlock;
typedef struct {
camel_block_t next;
guint32 used;
struct _CamelPartitionMap partition[(CAMEL_BLOCK_SIZE-8)/sizeof(struct _CamelPartitionMap)];
} CamelPartitionMapBlock;
typedef struct {
CamelObject parent;
struct _CamelPartitionTablePrivate *priv;
CamelBlockFile *blocks;
camel_block_t rootid;
gint (*is_key)(CamelPartitionTable *cpi, const gchar *key, camel_key_t keyid, gpointer data);
gpointer is_key_data;
/* we keep a list of partition blocks active at all times */
CamelDList partition;
} CamelPartitionTable;
CamelPartitionTable * camel_partition_table_new (struct _CamelBlockFile *bs,camel_block_t root);
|
|
|
|
Returns : |
gint camel_partition_table_sync (CamelPartitionTable *cpi);
|
|
Returns : |
gint camel_partition_table_add (CamelPartitionTable *cpi,const gchar *key,camel_key_t keyid);
|
|
|
|
|
|
Returns : |
camel_key_t camel_partition_table_lookup (CamelPartitionTable *cpi,const gchar *key);
|
|
|
|
Returns : |
void camel_partition_table_remove (CamelPartitionTable *cpi,const gchar *key);
|
|
|
typedef struct {
camel_block_t next;
guint32 used;
union {
struct _CamelKeyKey keys[(CAMEL_BLOCK_SIZE-8)/sizeof(struct _CamelKeyKey)];
gchar keydata[CAMEL_BLOCK_SIZE-8];
} u;
} CamelKeyBlock;
typedef struct {
camel_block_t first;
camel_block_t last;
camel_key_t free; /* free list */
} CamelKeyRootBlock;
typedef struct {
CamelObject parent;
struct _CamelKeyTablePrivate *priv;
CamelBlockFile *blocks;
camel_block_t rootid;
CamelKeyRootBlock *root;
CamelBlock *root_block;
} CamelKeyTable;
CamelKeyTable * camel_key_table_new (CamelBlockFile *bs,camel_block_t root);
|
|
|
|
Returns : |
camel_key_t camel_key_table_add (CamelKeyTable *ki,const gchar *key,camel_block_t data,guint flags);
|
|
|
|
|
|
|
|
Returns : |
void camel_key_table_set_data (CamelKeyTable *ki,camel_key_t keyid,camel_block_t data);
|
|
|
|
|
void camel_key_table_set_flags (CamelKeyTable *ki,camel_key_t keyid,guint flags,guint set);
|
|
|
|
|
|
|
camel_block_t camel_key_table_lookup (CamelKeyTable *ki,camel_key_t keyid,gchar **key,guint *flags);
|
|
|
|
|
|
|
|
Returns : |
camel_key_t camel_key_table_next (CamelKeyTable *ki,camel_key_t next,gchar **keyp,guint *flagsp,camel_block_t *datap);
|
|
|
|
|
|
|
|
|
|
Returns : |