]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
record some WIP structure for filetable
authorBrian Warner <warner@allmydata.com>
Thu, 14 Dec 2006 03:37:00 +0000 (20:37 -0700)
committerBrian Warner <warner@allmydata.com>
Thu, 14 Dec 2006 03:37:00 +0000 (20:37 -0700)
allmydata/filetable.py

index bb96b02ad5804e5cff52131d26443cade3b1c4c9..b52c367d3ca9fed10e79e9722ff246181b25ff22 100644 (file)
@@ -107,3 +107,32 @@ class GlobalVirtualDrive(service.MultiService):
     def get_root(self):
         return self._root
 
+
+class Node:
+    pass
+
+class MutableFileNode(Node):
+    """I hold an SSK identifier for a mutable file. My 'contents' are
+    defined to be the most recent version of the SSK's payload that can
+    be found. This SSK identifier must be dereferenced to get the
+    contents."""
+    pass
+class ImmutableFileNode(Node):
+    """I hold a CHK identifier for an immutable file. I may have some
+    metadata as well: ctime, mtime, content-type, and filesize."""
+    pass
+class ImmutableDirectoryNode(Node):
+    """I hold a list of child nodes."""
+    pass
+class MutableDirectoryNode2(Node):
+    """I hold an SSK identifier for a mutable directory. When
+    dereferenced, I will have a list of child nodes."""
+    pass
+
+# interesting feature ideas:
+#  pubsub for MutableDirectoryNode: get rapid notification of changes
+#  caused by someone else
+#
+#  bind a local physical directory to the MutableDirectoryNode contents:
+#  each time the vdrive changes, update the local drive to match, and
+#  vice versa.