def __init__(self, dir = "silos", debug_fd = None): assert type(dir) == str self.dir = dir self.debug_fd = debug_fd # Parameters # Files above this size will be split self.huge_size = 1024 * 1024 self.zlib_level = 9 self.max_silo = 3 * 1024 * 1024 * 1024 self.dbg_silo = None self.dbg("New Archive") silos = silo.find_silos(self.dir) self.dbg("Silos: " + str(silos)) if len(silos) == 0: silo.silo(dir, 0, self.dbg_silo, self.max_silo) silos.append(0) self.silo = dict() self.idx = dict() for s in silos: ss = silo.silo(self.dir, s, self.dbg_silo, self.max_silo) self.silo[s] = ss self.idx.update(ss.get_idx()) self.cur_write = ss
def __init__(self, dir="silos", debug_fd=None): assert type(dir) == str self.dir = dir self.debug_fd = debug_fd # Parameters # Files above this size will be split self.huge_size = 1024 * 1024 self.zlib_level = 9 self.max_silo = 3 * 1024 * 1024 * 1024 self.dbg_silo = None self.dbg("New Archive") silos = silo.find_silos(self.dir) self.dbg("Silos: " + str(silos)) if len(silos) == 0: silo.silo(dir, 0, self.dbg_silo, self.max_silo) silos.append(0) self.silo = dict() self.idx = dict() for s in silos: ss = silo.silo(self.dir, s, self.dbg_silo, self.max_silo) self.silo[s] = ss self.idx.update(ss.get_idx()) self.cur_write = ss
def add_entry(self, idx, method, body): assert idx not in self.idx self.dbg(" add(%s, %s, <%s>)" % (idx, method, len(body))) while True: i = self.cur_write.add(idx, method, body) if i != None: self.idx[idx] = i return i = self.cur_write.nbr + 1 ns = silo.silo(self.dir, i, self.dbg_silo, self.max_silo) self.silo[i] = ns self.cur_write = ns