ppf: Add implementation for add_*_message.
authorRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Sun, 21 Aug 2011 18:28:24 +0000 (21:28 +0300)
committerRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Sun, 21 Aug 2011 18:28:24 +0000 (21:28 +0300)
ppf/new/storage.py

index 8fb9435..37f71c8 100644 (file)
@@ -150,9 +150,10 @@ class ClientSession(object):
 
 class PeerStatusMessage(object):
     """ Class mimics a C structure. """
-    def __init__(self, client_session_id=None, date=None, time=None,
-            peer_ip=None, peer_port=None, download_speed=None,
+    def __init__(self, swarm_id=None, client_session_id=None, date=None,
+            time=None, peer_ip=None, peer_port=None, download_speed=None,
             upload_speed=None):
+        self.swarm_id = swarm_id
         self.client_session_id = client_session_id
         self.date = date
         self.time = time
@@ -163,10 +164,11 @@ class PeerStatusMessage(object):
 
 class StatusMessage(object):
     """ Class mimics a C structure. """
-    def __init__(self, client_session_id=None, date=None, time=None,
-            num_peers=None, num_dht_peers=None, download_speed=None,
-            upload_speed=None, download_size=None, upload_size=None,
-            eta=None):
+    def __init__(self, swarm_id=None, client_session_id=None, date=None,
+            time=None, num_peers=None, num_dht_peers=None,
+            download_speed=None, upload_speed=None, download_size=None,
+            upload_size=None, eta=None):
+        self.swarm_id = swarm_id
         self.client_session_id = client_session_id
         self.date = date
         self.time = time
@@ -180,10 +182,11 @@ class StatusMessage(object):
 
 class VerboseMessage(object):
     """ Class mimics a C structure. """
-    def __init__(self, client_session_id=None, date=None, time=None,
-            transfer_direction=None, peer_ip=None, peer_port=None,
+    def __init__(self, swarm_id=None, client_session_id=None, date=None,
+            time=None, transfer_direction=None, peer_ip=None, peer_port=None,
             message_type=None, index=None, begin=None, length=None,
             listen_port=None):
+        self.swarm_id = swarm_id
         self.client_session_id = client_session_id
         self.date = date
         self.time = time
@@ -360,13 +363,74 @@ class TreeTextFileAccess(FileAccess):
         f.close()
 
     def add_peer_status_message(self, msg):
-        pass
+        # TODO: id is number of lines in file.
+        swarm_path = os.path.join(self.base_path, str(msg.swarm_id))
+        session_path = os.path.join(swarm_path, str(msg.client_session_id))
+        message_file = os.path.join(session_path, "peer_status.txt")
+
+        f = open(message_file, 'w')
+        f.write("""id = %s
+        swarm_id = %s
+        client_session_id = %s
+        date = %s
+        time = %s
+        peer_ip = %s
+        peer_port = %s
+        download_speed = %s
+        upload_speed = %s
+        """ %(1, msg.swarm_id, msg.client_session_id, msg.date, msg.time,
+            msg.peer_ip, msg.peer_port, msg.download_speed, msg.upload_speed))
+        f.close()
 
     def add_status_message(self, msg):
-        pass
+        # TODO: id is number of lines in file.
+        swarm_path = os.path.join(self.base_path, str(msg.swarm_id))
+        session_path = os.path.join(swarm_path, str(msg.client_session_id))
+        message_file = os.path.join(session_path, "status.txt")
+
+        f = open(message_file, 'w')
+        f.write("""id = %s
+        swarm_id = %s
+        client_session_id = %s
+        date = %s
+        time = %s
+        num_peers = %s
+        num_dht_peers = %s
+        download_speed = %s
+        upload_speed = %s
+        download_size = %s
+        upload_size = %s
+        eta = %s
+        """ %(1, msg.swarm_id, msg.client_session_id, msg.date, msg.time,
+            msg.num_peers, msg.num_dht_peers, msg.download_speed,
+            msg.upload_speed, msg.download_size, msg.upload_size, msg.eta))
+        f.close()
 
     def add_verbose_message(self, msg):
-        pass
+        # TODO: id is number of lines in file.
+        swarm_path = os.path.join(self.base_path, str(msg.swarm_id))
+        session_path = os.path.join(swarm_path, str(msg.client_session_id))
+        message_file = os.path.join(session_path, "verbose.txt")
+
+        f = open(message_file, 'w')
+        f.write("""id = %s
+        swarm_id = %s
+        client_session_id = %s
+        date = %s
+        time = %s
+        transfer_direction = %s
+        peer_ip = %s
+        peer_port = %s
+        message_type = %s
+        index = %s
+        begin = %s
+        length = %s
+        listen_port = %s
+        """ %(1, msg.swarm_id, msg.client_session_id, msg.date, msg.time,
+            msg.transfer_direction, msg.peer_ip, msg.peer_port,
+            msg.message_type, msg.index, msg.begin, msg.length,
+            msg.listen_port))
+        f.close()
 
 class DatabaseAccess(SwarmDataAccess):
     def __init__(self):