Example #1
0
	def create(self):
		"""Creates new database"""

		f = self.file
		head = util.read_meta(f,"hDatabases")
		#Generate ID
		ID = util.read_meta(f,"cDatabases")+1
		util.write_meta(f,"cDatabases",ID)

		db = self.find_last()
		bdata = struct.pack("=I32sQQ",ID,self.name,db.addr,0)
		f.seek(0,2)
		self.addr = f.tell()

		#Write data 
		f.write(bdata)

		#Bind tail
		util.write_meta(f,"tDatabases",self.addr)

		#Bind previous node
		db.next = self.addr
		f.seek(db.addr+44)
		bdata = struct.pack("=I",db.next)
		f.write(bdata)

		return Result(0,"Database created")
Example #2
0
	def init(self):
		"""
			Initialization
			1. Create file
			2. Write all meta with defaults
			3. Write credentials
		"""
		if os.path.isfile(self.file_name):
			return Result(3,"Initialization is already done")

		self.file = open(self.file_name,"wb")
		self.file.close()
		self.file = open(self.file_name,"rb+")
		f = self.file

		#Write meta
		for key,value in self.meta.iteritems():
			util.write_meta(f,key,value[3])

		
		#Write default database
		db = Database(f,"_default")
		db.prev = self.meta["hDatabases"][1]
		db.id = 0
		db.next = 0
		bdata = struct.pack("=I32sQQ",db.id, db.name, db.prev, db.next)

		f.seek(0,2)
		db.addr = f.tell()
		f.write(bdata)

		#Write head and tail
		util.write_meta(f,"hDatabases",db.addr)
		util.write_meta(f,"tDatabases",db.addr)
		f.flush()

		return Result(0,"Initialization has beend done")
Example #3
0
def init():
	"""
		Initialization
		1. Create file
		2. Write all meta with zero
		3. Write credentials
	"""
	if os.path.isfile("data.db"):
		return Result(3,"Initialization is already done")

	f = open("data.db","wb")

	name = settings.credentials["name"]
	fx.set_name(f,name)


	version_a = settings.credeantials["version_a"]
	version_b = settings.credeantials["version_b"]
	fx.set_version(f,version_a,version_b)

	util.write_meta(f,"hDatabases",0)
	util.write_meta(f,"hTables",0)
	util.write_meta(f,"hColumns",0)
	util.write_meta(f,"hKeys",0)
	util.write_meta(f,"hSerials",0)

	util.write_meta(f,"cDatabases",0)
	util.write_meta(f,"cTables",0)
	util.write_meta(f,"cKeys",0)
	util.write_meta(f,"cSerials",0)


	f.close()
	return Result(0,"Initialized")