This is an implementation of the trove interface on top of Berkeley DB
and UNIX files (DB Plus Files = DBPF).

It relies on a relatively new version of Berkeley DB (3), so that will
likely need to be installed on the machine before this can be built.

Below is a description of what is in the various files as of 07/10/2002.


dbpf-op-queue.h -- header describing interface to the DBPF operation queue.
---------------

This is a queue holding all operations that have been queued for service.
It's currently implemented as a doubly-linked list.


struct dbpf_queued_op -- element on the queue.

dbpf_queued_op_init() -- called once to initialize the queue

dbpf_queued_op_queue() -- put an element on the queue

dpbf_queued_op_dequeue() -- take an element off the queue

dbpf_queued_op_touch() -- updates the statistics stored in the element to
  indicate that we have looked at this element again (not sure what i was
  really thinking here)


queue.c -- more queue functions
-------
dbpf_op_queue_head -- global pointer for getting to the queue

dbpf_queued_op_alloc() -- allocate space for an element
dbpf_queued_op_free() -- deallocate space for an element
dbpf_queue_list() -- prints out a list of elements on the queue


harness.c -- test harness for DBPF implementation
---------


mgmt.c -- management (storage space and collection) operations
------

dbpf_mgmt_ops -- structure holding pointers to the management operations

dbpf_collection_getinto()

dbpf_collection_setinfo()

dbpf_collection_seteattr()

dbpf_collection_geteattr()

dbpf_collection_deleattr()

dbpf_initialize() -- called once before DBPF interface is used (?)

dbpf_finalize()

dbpf_storage_create() -- creates databases needed for a DBPF storage space

dbpf_storage_remove()

dbpf_collection_create()

dbpf_collection_remove()

dbpf_collection_lookup() -- maps a collection name to a collection ID

dbpf_storage_lookup() -- maps a storage name to a dbpf_storage structure

dbpf_db_create() -- creates DBPF databases for use in a DBPF storage region (?)

dbpf_db_open() -- opens the databases


fs.c
----
dbpf_fs_ops -- structure holding pointers to the file system operations

dbpf_filesystem_create()

dbpf_filesystem_remove()

dbpf_filesystem_lookup()

dbpf_filesystem_get_root()


dspace.c
--------
dbpf_dspace_ops -- structure holding pointers to the dspace operations

dbpf_dspace_create()

dbpf_dspace_remove()

dbpf_dspace_verify()

dbpf_dspace_getattr()

dbpf_dspace_setattr()

dbpf_dspace_test()

dbpf_dspace_testsome()


bstream.c
---------
dbpf_bstream_ops -- structure holding pointers to the bstream operations

dbpf_bstream_read_at()

dbpf_bstream_read_at_op_svc()

dbpf_bstream_write_at()

dbpf_bstream_write_at_op_svc()

dbpf_bstream_resize()

dbpf_bstream_validate()

dbpf_bstream_read_list()

dbpf_bstream_write_list()


keyval.c
--------
dbpf_keyval_ops -- structure holding pointers to the keyval operations

dbpf_keyval_read()

dbpf_keyval_read_op_svc()

dbpf_keyval_write()

dbpf_keyval_write_op_svc()

dbpf_keyval_remove_key()

dbpf_keyval_validate()

dbpf_keyval_iterate()

dbpf_keyval_iterate_keys()

dbpf_keyval_read_list()

dbpf_keyval_write_list()



















