Example #1
0
	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
Example #2
0
    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
Example #3
0
 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
Example #4
0
	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