summaryrefslogtreecommitdiff
path: root/utils/open-isns/db.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/open-isns/db.h')
-rw-r--r--utils/open-isns/db.h147
1 files changed, 0 insertions, 147 deletions
diff --git a/utils/open-isns/db.h b/utils/open-isns/db.h
deleted file mode 100644
index 148d930..0000000
--- a/utils/open-isns/db.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * iSNS object database
- *
- * Copyright (C) 2007 Olaf Kirch <olaf.kirch@oracle.com>
- */
-
-#ifndef ISNS_DB_H
-#define ISNS_DB_H
-
-#include "attrs.h"
-
-typedef struct isns_db_backend isns_db_backend_t;
-
-/*
- * In-memory portion of object database.
- * Stable storage is provided by different
- * backends.
- */
-struct isns_db {
- isns_object_list_t * id_objects;
- isns_object_list_t __id_objects;
-
- isns_relation_soup_t * id_relations;
-
- uint32_t id_last_eid;
- uint32_t id_last_index;
-
- isns_scope_t * id_global_scope;
- isns_scope_t * id_default_scope;
-
- isns_db_backend_t * id_backend;
-
- unsigned int id_in_transaction : 1;
- struct isns_db_trans * id_transact;
-
- /* This is for objects in limbo. When a client
- * calls DevAttrDereg, the object will first be
- * placed on the id_deferred list.
- * When we're done processing the message, we
- * invoke isns_db_purge, which looks at these
- * objects.
- * - if the reference count is 1, the object
- * is deleted.
- * - otherwise, we assume the object is referenced
- * by a discovery domain. In this case, we prune
- * the attribute list down to the key attr(s)
- * plus the index attribute, and move it to
- * the id_limbo list.
- */
- isns_object_list_t id_deferred;
- isns_object_list_t id_limbo;
-};
-
-
-struct isns_db_backend {
- char * idb_name;
-
- int (*idb_reload)(isns_db_t *);
- int (*idb_sync)(isns_db_t *);
- int (*idb_store)(isns_db_t *,
- const isns_object_t *);
- int (*idb_remove)(isns_db_t *,
- const isns_object_t *);
-};
-
-extern isns_db_backend_t *isns_create_file_db_backend(const char *);
-extern isns_object_t * __isns_db_get_next(const isns_object_list_t *,
- isns_object_template_t *,
- const isns_attr_list_t *,
- const isns_attr_list_t *);
-
-extern isns_relation_soup_t *isns_relation_soup_alloc(void);
-extern isns_relation_t *isns_create_relation(isns_object_t *relating_object,
- unsigned int relation_type,
- isns_object_t *subordinate_object1,
- isns_object_t *subordinate_object2);
-extern void isns_relation_sever(isns_relation_t *);
-extern void isns_relation_release(isns_relation_t *);
-extern void isns_relation_add(isns_relation_soup_t *,
- isns_relation_t *);
-extern void isns_relation_remove(isns_relation_soup_t *,
- isns_relation_t *);
-extern isns_object_t * isns_relation_get_other(const isns_relation_t *,
- const isns_object_t *);
-extern isns_relation_t *isns_relation_find_edge(isns_relation_soup_t *,
- const isns_object_t *,
- const isns_object_t *,
- unsigned int);
-extern void isns_relation_halfspace(isns_relation_soup_t *,
- const isns_object_t *,
- unsigned int,
- isns_object_list_t *);
-extern void isns_relation_get_edge_objects(isns_relation_soup_t *,
- const isns_object_t *,
- unsigned int,
- isns_object_list_t *);
-extern int isns_relation_exists(isns_relation_soup_t *,
- const isns_object_t *relating_object,
- const isns_object_t *left,
- const isns_object_t *right,
- unsigned int relation_type);
-extern int isns_relation_is_dead(const isns_relation_t *);
-
-extern void isns_db_create_relation(isns_db_t *db,
- isns_object_t *relating_object,
- unsigned int relation_type,
- isns_object_t *subordinate_object1,
- isns_object_t *subordinate_object2);
-extern void isns_db_get_relationship_objects(isns_db_t *,
- const isns_object_t *,
- unsigned int relation_type,
- isns_object_list_t *);
-extern isns_object_t * isns_db_get_relationship_object(isns_db_t *,
- const isns_object_t *,
- const isns_object_t *,
- unsigned int relation_type);
-extern int isns_db_relation_exists(isns_db_t *db,
- const isns_object_t *relating_object,
- const isns_object_t *left,
- const isns_object_t *right,
- unsigned int relation_type);
-extern int isns_db_create_pg_relation(isns_db_t *,
- isns_object_t *);
-
-extern isns_scope_t * isns_scope_for_call(isns_db_t *, const isns_simple_t *);
-extern isns_scope_t * isns_scope_alloc(isns_db_t *);
-extern void isns_scope_release(isns_scope_t *);
-extern void isns_scope_add(isns_scope_t *,
- isns_object_t *);
-extern int isns_scope_remove(isns_scope_t *,
- isns_object_t *);
-extern int isns_scope_gang_lookup(isns_scope_t *,
- isns_object_template_t *,
- const isns_attr_list_t *,
- isns_object_list_t *);
-extern isns_object_t * isns_scope_get_next(isns_scope_t *,
- isns_object_template_t *,
- const isns_attr_list_t *current,
- const isns_attr_list_t *scope);
-extern void isns_scope_get_related(isns_scope_t *,
- const isns_object_t *,
- unsigned int,
- isns_object_list_t *);
-extern isns_db_t * isns_scope_get_db(const isns_scope_t *);
-
-
-#endif /* ISNS_DB_H */