diff options
Diffstat (limited to 'camel/camel-partition-table.h')
-rw-r--r-- | camel/camel-partition-table.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/camel/camel-partition-table.h b/camel/camel-partition-table.h deleted file mode 100644 index 3433da3cf1..0000000000 --- a/camel/camel-partition-table.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (C) 2001 Ximian Inc. - * - * Authors: Michael Zucchi <notzed@ximian.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _CAMEL_PARTITION_TABLE_H -#define _CAMEL_PARTITION_TABLE_H - -#include <camel/camel-object.h> -#include <glib.h> -#include <e-util/e-msgport.h> - -#include "camel-block-file.h" - -/* ********************************************************************** */ - -/* CamelPartitionTable - index of key to keyid */ - -typedef guint32 camel_hash_t; /* a hashed key */ - -typedef struct _CamelPartitionKey CamelPartitionKey; -typedef struct _CamelPartitionKeyBlock CamelPartitionKeyBlock; -typedef struct _CamelPartitionMap CamelPartitionMap; -typedef struct _CamelPartitionMapBlock CamelPartitionMapBlock; - -typedef struct _CamelPartitionTable CamelPartitionTable; -typedef struct _CamelPartitionTableClass CamelPartitionTableClass; - -struct _CamelPartitionKey { - camel_hash_t hashid; - camel_key_t keyid; -}; - -struct _CamelPartitionKeyBlock { - guint32 used; - struct _CamelPartitionKey keys[(CAMEL_BLOCK_SIZE-4)/sizeof(struct _CamelPartitionKey)]; -}; - -struct _CamelPartitionMap { - camel_hash_t hashid; - camel_block_t blockid; -}; - -struct _CamelPartitionMapBlock { - camel_block_t next; - guint32 used; - struct _CamelPartitionMap partition[(CAMEL_BLOCK_SIZE-8)/sizeof(struct _CamelPartitionMap)]; -}; - -struct _CamelPartitionTable { - CamelObject parent; - - struct _CamelPartitionTablePrivate *priv; - - CamelBlockFile *blocks; - camel_block_t rootid; - - int (*is_key)(CamelPartitionTable *cpi, const char *key, camel_key_t keyid, void *data); - void *is_key_data; - - /* we keep a list of partition blocks active at all times */ - EDList partition; -}; - -struct _CamelPartitionTableClass { - CamelObjectClass parent; -}; - -CamelType camel_partition_table_get_type(void); - -CamelPartitionTable *camel_partition_table_new(struct _CamelBlockFile *bs, camel_block_t root); -int camel_partition_table_sync(CamelPartitionTable *cpi); -int camel_partition_table_add(CamelPartitionTable *cpi, const char *key, camel_key_t keyid); -camel_key_t camel_partition_table_lookup(CamelPartitionTable *cpi, const char *key); -void camel_partition_table_remove(CamelPartitionTable *cpi, const char *key); - -/* ********************************************************************** */ - -/* CamelKeyTable - index of keyid to key and flag and data mapping */ - -typedef struct _CamelKeyBlock CamelKeyBlock; -typedef struct _CamelKeyRootBlock CamelKeyRootBlock; - -typedef struct _CamelKeyTable CamelKeyTable; -typedef struct _CamelKeyTableClass CamelKeyTableClass; - -struct _CamelKeyRootBlock { - camel_block_t first; - camel_block_t last; - camel_key_t free; /* free list */ -}; - -struct _CamelKeyKey { - camel_block_t data; - unsigned int offset:10; - unsigned int flags:22; -}; - -struct _CamelKeyBlock { - camel_block_t next; - guint32 used; - union { - struct _CamelKeyKey keys[(CAMEL_BLOCK_SIZE-8)/sizeof(struct _CamelKeyKey)]; - char keydata[CAMEL_BLOCK_SIZE-8]; - } u; -}; - -#define CAMEL_KEY_TABLE_MAX_KEY (128) /* max size of any key */ - -struct _CamelKeyTable { - CamelObject parent; - - struct _CamelKeyTablePrivate *priv; - - CamelBlockFile *blocks; - - camel_block_t rootid; - - CamelKeyRootBlock *root; - CamelBlock *root_block; -}; - -struct _CamelKeyTableClass { - CamelObjectClass parent; -}; - -CamelType camel_key_table_get_type(void); - -CamelKeyTable * camel_key_table_new(CamelBlockFile *bs, camel_block_t root); -int camel_key_table_sync(CamelKeyTable *ki); -camel_key_t camel_key_table_add(CamelKeyTable *ki, const char *key, camel_block_t data, unsigned int 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, unsigned int flags, unsigned int set); -camel_block_t camel_key_table_lookup(CamelKeyTable *ki, camel_key_t keyid, char **key, unsigned int *flags); -camel_key_t camel_key_table_next(CamelKeyTable *ki, camel_key_t next, char **keyp, unsigned int *flagsp, camel_block_t *datap); - -#endif /* ! _CAMEL_PARTITION_TABLE_H */ |