![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
typedef camel_hash_t; struct CamelPartitionKey; struct CamelPartitionKeyBlock; struct CamelPartitionMap; struct CamelPartitionMapBlock; struct 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
); gboolean camel_partition_table_remove (CamelPartitionTable *cpi
,const gchar *key
); struct CamelKeyBlock; struct CamelKeyRootBlock; struct CamelKeyKey; #define CAMEL_KEY_TABLE_MAX_KEY struct 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
); gboolean camel_key_table_set_data (CamelKeyTable *ki
,camel_key_t keyid
,camel_block_t data
); gboolean 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
);
GObject +----CamelObject +----CamelPartitionTable
GObject +----CamelObject +----CamelKeyTable
struct CamelPartitionKeyBlock { guint32 used; struct _CamelPartitionKey keys[(CAMEL_BLOCK_SIZE - 4) / sizeof (struct _CamelPartitionKey)]; };
struct CamelPartitionMapBlock { camel_block_t next; guint32 used; struct _CamelPartitionMap partition[(CAMEL_BLOCK_SIZE - 8) / sizeof (struct _CamelPartitionMap)]; };
CamelPartitionTable * camel_partition_table_new (struct _CamelBlockFile *bs
,camel_block_t root
);
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
);
gboolean camel_partition_table_remove (CamelPartitionTable *cpi
,const gchar *key
);
struct CamelKeyBlock { camel_block_t next; guint32 used; union { struct _CamelKeyKey keys[(CAMEL_BLOCK_SIZE - 8) / sizeof (struct _CamelKeyKey)]; gchar keydata[CAMEL_BLOCK_SIZE - 8]; } u; };
struct CamelKeyRootBlock { camel_block_t first; camel_block_t last; camel_key_t free; /* free list */ };
CamelKeyTable * camel_key_table_new (CamelBlockFile *bs
,camel_block_t root
);
camel_key_t camel_key_table_add (CamelKeyTable *ki
,const gchar *key
,camel_block_t data
,guint flags
);
gboolean camel_key_table_set_data (CamelKeyTable *ki
,camel_key_t keyid
,camel_block_t data
);
gboolean 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
);