Example #1
0
def boot():
  global inodes
  global availableDisc
  f = DiscDriver.openIndexFile()
  #Saco la primera linea, solo dice IN: y no es necesaria para nada
  f.readline()

  # Saco la ubicacion de los inodos y los creo, guardandolos en un hash
  for line in f:
    line = line.strip()
    if(line == "NO:"):
      break
    inode=Inode(line)
    inodes[inode.name]=inode       

  #Guardo todos los bloques disponibles
  availableDisc.extend(f)
  f.close()
  for filename in DiscDriver.getIndexFiles():
    f = open(filename)
    availableDisc.extend(f)
    f.close()
  
  #Elimino simbolos blancos para evitar futuros problemas
  availableDisc=[item.strip() for item in availableDisc]
Example #2
0
	def __init__(self, filename):
		self.filename = filename
		f = DiscDriver.openFile(self.filename)
		#Extraigo metadata.....Definir bien y eliminar simbolos blancos


		self.name = self.CleanName(f.readline())
		
		lines = f.readlines()
		self.available_space_in_last_block = int(lines[1].strip())

		self.blocks = lines[2:]

		f.close()

		#Limpio
		self.blocks=[item.strip() for item in self.blocks]
Example #3
0
	def AddNewElement(self, element):
		print "AVAILABLE SPACE ", self.available_space_in_last_block
		if self.available_space_in_last_block <= 0:
			#CREO NUEVO BLOCK Y LO AGREGO A ESTE INODO
			new_block = Disc.getFirstAvailableBlock()
			print "NEW BLOCK", new_block
			if new_block != -1:
				self.blocks.append(new_block)
				DiscDriver.addBlockToFile(self.filename, new_block)
				self.available_space_in_last_block = 513
			else:
				return False

		print self.blocks
		print len(self.blocks)
		DiscDriver.appendToFile(element, self.blocks[-1])
		#CUANTO ES EL TAMAÑO DEL ELEMENTO?!?!?!?!?!?!!
		self.available_space_in_last_block -= 3
		DiscDriver.updateFreeSpaceInInode(self.filename, self.available_space_in_last_block)
		return True