Ideas and scribbles regarding the Interface specifications for my SOC proposal.

Interface between Moin and Storage Engine

se

se.add_page_data("WikiName", Data)

se.get_item_data(itemname, rev=0, index=0)

se.set_item_data(itemname, data, rev=0, index=0)

se.del_item_data(itemname, index=-1)

se.clear_item_data("WikiName")

Use dict-access, not functions?

se.get_item_meta(itemname, "MetaDataTag")

se.set_item_meta(itemname, "MetaDataTag", MetaData)

se.clear_page_metadata("WikiName")

Would ACL Objects be add/del like page data or just set-able?

se.get_item_acl(itemname)

se.set_item_acl(itemname)

se.clear_item_acl(itemname)

Check if we need this at all. ACLs are metadata.

se.get_item_revision(itemname)

se.get_item_parent(itemname)

We already have locking functions, see lock.py

se.get_item_lock(itemname)

se.clear_item_lock(itemname)

This looks like a very simplified view on locks ... check out the current lock API and don't forget that page editing involves three locking levels currently which work completly different each. -- AlexanderSchremmer 2006-05-27 23:15:10

The storage implementation access (open/close) would be transparent to this interface, and would be initiated by the storage engine if a request comes in.

se.manager.check_connectivity()

se.manager.set_storage_location(uri_to_subversion_host)

se.manager.get_page_count()

Interface between Storage Implementation and Storage Engine

/!\ Some stuff is missing here:

Abstraction Engine Classes

Concrete Engine Classes

MoinMoin: AlexAdranghi/SOC2006/InterfaceSpecifications (last edited 2007-10-29 19:20:19 by localhost)