Projects
/
mdb-ng
Archived
4
0
Fork 0

Added interface things for the different classes.

This commit is contained in:
Øyvind Grønnesby 2005-02-24 21:10:44 +00:00
parent da6d1d6aac
commit 21be0b27e7
1 changed files with 69 additions and 0 deletions

69
lib/mdb/db.py Normal file
View File

@ -0,0 +1,69 @@
#
# $Id$
#
# This file contains class definitions and interface to the database
# itself while defining objects that the database will return.
#
#
# The most generic exception that this library will raise.
#
class PVVDBError(Exception):
pass
#
# PVVMember is the class that represents a record in the database.
# It's interface is like a dict with a few additional functiosn to
# talk to the database itself.
#
class PVVMember(dict):
def __init__(self, data, dbref):
# Populate the object with the fields and values provided in the
# `data' object. `dbref' is a pointer to the PVVDB instance that
# created the PVVMember instance.
pass
def save(self):
# Synchronise the object to disk via the database interface.
pass
def load(self):
# Update the object with the data on disk.
pass
def is_saved(self):
# Checks whether the objects need to be saved or loaded.
pass
#
# PVVDB is the class that interfaces to the directory structure and files.
# It also verifies the data read from the files and written to it.
#
class PVVDB:
def __init__(self, base):
# Find the record definition file, read it, verify it and
# set the legal set of fields.
pass
def lock(self, username):
# Lock the record.
pass
def unlock(self, username):
# Unlock the record.
pass
def load(self, username, lock=False):
# Read the record from the database. Will do an automatic lock
# if `lock' is True.
pass
def save(self, username, comment="", lock=False):
# Write the record to the database. Will automatically unlock
# the record if `lock' is True. A `comment' can be supplied that
# explains the changes made.
pass