@@ -35,6 +35,8 @@ class HTProxyMixin:
35
35
36
36
37
37
ChunkIndexEntry = namedtuple(' ChunkIndexEntry' , ' flags size' )
38
+ ChunkIndexEntryFormatT = namedtuple(' ChunkIndexEntryFormatT' , ' flags size' )
39
+ ChunkIndexEntryFormat = ChunkIndexEntryFormatT(flags = " I" , size = " I" )
38
40
39
41
40
42
class ChunkIndex (HTProxyMixin , MutableMapping ):
@@ -57,7 +59,8 @@ class ChunkIndex(HTProxyMixin, MutableMapping):
57
59
else :
58
60
if usable is not None :
59
61
capacity = usable * 2 # load factor 0.5
60
- self .ht = HashTableNT(key_size = 32 , value_format = " <II" , value_type = ChunkIndexEntry, capacity = capacity)
62
+ self .ht = HashTableNT(key_size = 32 , value_type = ChunkIndexEntry, value_format = ChunkIndexEntryFormat,
63
+ capacity = capacity)
61
64
62
65
def hide_system_flags (self , value ):
63
66
user_flags = value.flags & self .M_USER
@@ -130,17 +133,21 @@ class ChunkIndex(HTProxyMixin, MutableMapping):
130
133
131
134
132
135
FuseVersionsIndexEntry = namedtuple(' FuseVersionsIndexEntry' , ' version hash' )
136
+ FuseVersionsIndexEntryFormatT = namedtuple(' FuseVersionsIndexEntryFormatT' , ' version hash' )
137
+ FuseVersionsIndexEntryFormat = FuseVersionsIndexEntryFormatT(version = " I" , hash = " 16s" )
133
138
134
139
135
140
class FuseVersionsIndex (HTProxyMixin , MutableMapping ):
136
141
"""
137
142
Mapping from key128 to (file_version32, file_content_hash128) to support the FUSE versions view.
138
143
"""
139
144
def __init__ (self ):
140
- self .ht = HashTableNT(key_size = 16 , value_format = " <I16s " , value_type = FuseVersionsIndexEntry )
145
+ self .ht = HashTableNT(key_size = 16 , value_type = FuseVersionsIndexEntry, value_format = FuseVersionsIndexEntryFormat )
141
146
142
147
143
148
NSIndex1Entry = namedtuple(' NSIndex1Entry' , ' segment offset' )
149
+ NSIndex1EntryFormatT = namedtuple(' NSIndex1EntryFormatT' , ' segment offset' )
150
+ NSIndex1EntryFormat = NSIndex1EntryFormatT(segment = " I" , offset = " I" )
144
151
145
152
146
153
class NSIndex1 (HTProxyMixin , MutableMapping ):
@@ -150,14 +157,14 @@ class NSIndex1(HTProxyMixin, MutableMapping):
150
157
MAX_VALUE = 2 ** 32 - 1 # borghash has the full uint32_t range
151
158
MAGIC = b" BORG_IDX" # borg 1.x
152
159
HEADER_FMT = " <8sIIBB" # magic, entries, buckets, ksize, vsize
153
- VALUE_FMT = " <II" # borg 1.x on-disk: little-endian segment, offset
154
160
KEY_SIZE = 32
155
161
VALUE_SIZE = 8
156
162
157
163
def __init__ (self , capacity = 1000 , path = None , usable = None ):
158
164
if usable is not None :
159
165
capacity = usable * 2 # load factor 0.5
160
- self .ht = HashTableNT(key_size = self .KEY_SIZE, value_format = self .VALUE_FMT, value_type = NSIndex1Entry, capacity = capacity)
166
+ self .ht = HashTableNT(key_size = self .KEY_SIZE, value_type = NSIndex1Entry, value_format = NSIndex1EntryFormat,
167
+ capacity = capacity)
161
168
if path:
162
169
self ._read(path)
163
170
0 commit comments