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},
def __init__(self):
pass
- def add_swarm(self, torrent_filename, data_size, description):
+ def add_swarm(self, swarm):
pass
def remove_swarm(self):
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):
def update_peer_status_message(self):
pass
- def add_status_message(self):
+ def add_status_message(self, msg):
pass
def remove_status_message(self):
def update_status_message(self):
pass
- def add_verbose_message(self):
+ def add_verbose_message(self, msg):
pass
def remove_verbose_message(self):
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):