immutable: define a new interface IImmutableFileURI and declare that CHKFileURI and LiteralFileURI provide it

This commit is contained in:
Zooko O'Whielacronx 2009-01-07 12:24:51 -07:00
parent c01cfc0035
commit 2e762f39f6
2 changed files with 7 additions and 4 deletions

View File

@ -392,6 +392,9 @@ class IFileURI(Interface):
def get_size():
"""Return the length (in bytes) of the file that I represent."""
class IImmutableFileURI(IFileURI):
pass
class IMutableFileURI(Interface):
"""I am a URI which represents a mutable filenode."""
class INewDirectoryURI(Interface):

View File

@ -4,8 +4,8 @@ from zope.interface import implements
from twisted.python.components import registerAdapter
from allmydata import storage
from allmydata.util import base32, hashutil
from allmydata.interfaces import IURI, IDirnodeURI, IFileURI, IVerifierURI, \
IMutableFileURI, INewDirectoryURI, IReadonlyNewDirectoryURI
from allmydata.interfaces import IURI, IDirnodeURI, IFileURI, IImmutableFileURI, \
IVerifierURI, IMutableFileURI, INewDirectoryURI, IReadonlyNewDirectoryURI
# the URI shall be an ascii representation of the file. It shall contain
# enough information to retrieve and validate the contents. It shall be
@ -43,7 +43,7 @@ class _BaseURI:
return self.storage_index
class CHKFileURI(_BaseURI):
implements(IURI, IFileURI)
implements(IURI, IImmutableFileURI)
STRING_RE=re.compile('^URI:CHK:'+BASE32STR_128bits+':'+
BASE32STR_256bits+':'+NUMBER+':'+NUMBER+':'+NUMBER+
@ -153,7 +153,7 @@ class CHKFileVerifierURI(_BaseURI):
class LiteralFileURI(_BaseURI):
implements(IURI, IFileURI)
implements(IURI, IImmutableFileURI)
STRING_RE=re.compile('^URI:LIT:'+base32.BASE32STR_anybytes+'$')
HUMAN_RE=re.compile('^'+OPTIONALHTTPLEAD+'URI'+SEP+'LIT'+SEP+base32.BASE32STR_anybytes+'$')