		  Interface to GNU dbm from MzScheme

This package make available gdbm for mzscheme code. For additional
details you can see man 3 gdbm or info gdbm

				TYPES

gdbm:file
	MzScheme type for GDBM file

			      FUNCTIONS

gdbm:open - open gnu database (gdbm)
	Parameters:
		filename (string) path to file
		open mode (integer) optional value for mode of file
		     open (see constants later), default :gdbm:reader
		file create mask (integer) optional value when you
		     create new database, default 0644
		
	Returns: 
		descriptor of open database (gdbm:file structure)


gdbm:close - close gdbm
	Parameters:
		db (gdbm:file structure) - descriptor of open database
		
	Returns: 
		void
	
gdbm:file? - check type of given structure
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		#t if given parameter is gdbm:file structure, #f otherwise
	
gdbm:store - store data in gdbm
	Parameters:
		db (gdbm:file structure) - descriptor of open database
		pair or two values (string, integer or float value) -
		     key and data to store

	Returns: 
		void

	Example: 
		You can store pair of 1 & 2 with two methods:

		(gdbm:store db (cons 1 2) :gdbm:replace)
		(gdbm:store db 1 2 :gdbm:replace)
	
gdbm:fetch - fetch data with given key from gdbm
	Parameters:
		db (gdbm:file structure) - descriptor of open database
		key (string, integer or float value) - key for data search

	Returns: 
		string with data on succes, #f when no data for given key
	
gdbm:exists? - check is data with given key exists in gdbm
	Parameters:
		db (gdbm:file structure) - descriptor of open database
		key (string, integer or float value) - key for data search

	Returns: 
		#t if data exists, #f otherwise
	
gdbm:delete - deletes data with given key from database
	Parameters:
		db (gdbm:file structure) - descriptor of open database
		key (string, integer or float value) - key for data search

	Returns: 
		void

gdbm:delete-all - deletes all data from database
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		void
	
gdbm:reorganize - reorganize db, clearing deleted data
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		void
	
gdbm:sync - synchronize database
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		void
	
gdbm:get-error - return value of gdbm_errno variable
	Parameters:
		db (gdbm:file structure) - descriptor of open database


	Returns: 
		value of gdbm_errno variable
	
gdbm:strerror - return description of gdbm error
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		string, describing gdbm error
	
gdbm:file-descriptor - return file descriptor for given gdbm:file structure
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		integer value for file descriptor

gdbm:first-key - returns first key in database for use in sequence traversal
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		string with key on success, #f when no data in db
	
gdbm:next-key - returns next key in database for use in sequence traversal
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		string with key on success, #f when no more data in db
	
gdbm:first-pair - returns first pair of key,data of database for use in sequence traversal
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		pair of strings on success, null when no records in db

gdbm:next-pair
	Parameters:
		db (gdbm:file structure) - descriptor of open database

	Returns: 
		pair of strings on success, null when no more records in db


			      EXCEPTION
	
All fuctions on errors raises generic primitive exception

			      CONSTANTS

Used constants are self-describing

* for gdbm:open
   :gdbm:reader 
	equal to C constant GDBM_READER

   :gdbm:writer 
	equal to C constant GDBM_WRITER

   :gdbm:write-create 
        equal to C constant GDBM_WRCREAT

   :gdbm:new-database 
        equal to C constant GDBM_NEWDB

   :gdbm:sync 
        equal to C constant GDBM_SYNC

   :gdbm:no-lock 
        equal to C constant GDBM_NOLOCK

* for gdbm:store
   :gdbm:replace 
        equal to C constant GDBM_REPLACE, used when you need to
	replace data in db (default mode)

   :gdbm:insert 
        equal to C constant GDBM_INSERT, used when you need to
	insert only new data in db (when data exists, then throw exception)

