9 enum status {CLEAN, DIRTY};
11 typedef struct objheader {
14 unsigned short version;
15 unsigned short rcount;
19 typedef struct objstr {
26 typedef struct transrecord {
28 hashtable_t *lookupTable;
31 /* Initialize main object store and lookup tables, start server thread. */
34 /* Prototypes for object header */
35 unsigned int getNewOID(void);
36 unsigned int objSize(objheader_t *object);
37 void objInsert(objheader_t *object); //copies object to main object store
38 unsigned int objCreate(unsigned short type); //returns oid
39 /* end object header */
41 /* Prototypes for object store */
42 objstr_t *objstrCreate(unsigned int size); //size in bytes
43 void objstrDelete(objstr_t *store); //traverse and free entire list
44 void *objstrAlloc(objstr_t *store, unsigned int size); //size in bytes
45 /* end object store */
47 /* Prototypes for server portion */
49 void *dstmAccept(void *);
50 /* end server portion */
52 /* Prototypes for transactions */
53 transrecord_t *transStart();
54 objheader_t *transRead(transrecord_t *record, unsigned int oid);
55 int transCommit(transrecord_t *record); //return 0 if successful
56 /* end transactions */