From: Razvan Deaconescu Date: Sun, 21 Aug 2011 15:40:51 +0000 (+0300) Subject: Initial fill of TreeTextFileAccess. X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=7331fc28b1aed806a4d258ad5903e754865f8c28;p=cs-p2p-next.git Initial fill of TreeTextFileAccess. --- diff --git a/ppf/new/storage.py b/ppf/new/storage.py index 2abcc00..e8c7750 100644 --- a/ppf/new/storage.py +++ b/ppf/new/storage.py @@ -4,6 +4,9 @@ Storage class for P2P logging information. 2011, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro """ +import os +import os.path + message_types = { 'CHOKE': {'id': 1, 'parameters': None}, 'UNCHOKE': {'id': 2, 'parameters': None}, @@ -172,7 +175,7 @@ class SwarmDataAccess(): def __init__(self): pass - def add_swarm(self, torrent_filename, data_size, description): + def add_swarm(self, swarm): pass def remove_swarm(self): @@ -184,19 +187,19 @@ class SwarmDataAccess(): def update_swarm(self): pass - def add_session(self, swarm_id, btclient_id, system_os, system_os_version, system_ram, system_cpu, public_): + def add_client_session(self, session): pass - def remove_session(self): + def remove_client_session(self): pass - def get_session(self): + def get_client_session(self): pass - def update_session(self): + def update_client_session(self): pass - def add_peer_status_message(self): + def add_peer_status_message(self, msg): pass def remove_peer_status_message(self): @@ -208,7 +211,7 @@ class SwarmDataAccess(): def update_peer_status_message(self): pass - def add_status_message(self): + def add_status_message(self, msg): pass def remove_status_message(self): @@ -220,7 +223,7 @@ class SwarmDataAccess(): def update_status_message(self): pass - def add_verbose_message(self): + def add_verbose_message(self, msg): pass def remove_verbose_message(self): @@ -234,11 +237,51 @@ class SwarmDataAccess(): class FileAccess(SwarmDataAccess): def __init__(self, path): - self.path = path + self.base_path = path class TreeTextFileAccess(FileAccess): def __init__(self, path): super(TextTreeFileAccess, self).__init(path) + # TODO: Check exception. + os.mkdir(self.base_path) + + def find_last_folder_id(self): + """ + Find last numeric folder in base_path folder. + The last numeric folder is the last swarm_id. + """ + dir_list = [] + pattern = re.compile("[0-9]+") + + # Browse entries in base_path folder. + listing = os.listdir(self.base_path) + for entry in listing: + # If directory name is a number (id) add it to the list. + if os.path.isdir(entry): + if pattern.match(entry): + dir_list.append(int(entry)) + + if dir_list.empty(): + return None + else: + dir_list.sort() + return dir_list[len(dir_list)-1] + + def add_swarm(self, swarm): + f = open(os.path.join(self.base_path, "swarm.conf")) + pass + + def add_client_session(self, session): + pass + + def add_peer_status_message(self, msg): + pass + + def add_status_message(self, msg): + pass + + def add_verbose_message(self, msg): + pass class DatabaseAccess(SwarmDataAccess): def __init__(self):