Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/p2p/Stream.py
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2006-05-22 06:10:30 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2006-05-22 06:10:30 (GMT)
commitd3c5da1a667c381346879929cf5471df85d72d23 (patch)
tree0b505da5122e2b39e3ff725133726c200193ea7a /sugar/p2p/Stream.py
parent3b2f185e5c236ae7fc39b8e6e0c291d7e4357058 (diff)
Display icons in the chat
Diffstat (limited to 'sugar/p2p/Stream.py')
-rw-r--r--sugar/p2p/Stream.py75
1 files changed, 4 insertions, 71 deletions
diff --git a/sugar/p2p/Stream.py b/sugar/p2p/Stream.py
index 2467f5a..e6c1a91 100644
--- a/sugar/p2p/Stream.py
+++ b/sugar/p2p/Stream.py
@@ -1,12 +1,6 @@
import xmlrpclib
import socket
import traceback
-import threading
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-
import network
from MostlyReliablePipe import MostlyReliablePipe
@@ -38,7 +32,7 @@ class Stream(object):
self._callback(self._group.get_buddy(nick_name), data)
-class UnicastStreamWriterBase(object):
+class UnicastStreamWriter(object):
def __init__(self, stream, service, owner_nick_name):
# set up the writer
if not service:
@@ -48,10 +42,6 @@ class UnicastStreamWriterBase(object):
self._address = self._service.get_address()
self._port = self._service.get_port()
self._xmlrpc_addr = "http://%s:%d" % (self._address, self._port)
-
-class UnicastStreamWriter(UnicastStreamWriterBase):
- def __init__(self, stream, service, owner_nick_name):
- UnicastStreamWriterBase.__init__(self, stream, service, owner_nick_name)
self._writer = xmlrpclib.ServerProxy(self._xmlrpc_addr)
def write(self, data):
@@ -73,60 +63,6 @@ class UnicastStreamWriter(UnicastStreamWriterBase):
return None
-class ThreadedRequest(threading.Thread):
- def __init__(self, controller, addr, method, response_cb, user_data, *args):
- threading.Thread.__init__(self)
- self._controller = controller
- self._method = method
- self._args = args
- self._response_cb = response_cb
- self._user_data = user_data
- self._writer = xmlrpclib.ServerProxy(addr)
-
- def run(self):
- response = None
- try:
- method = getattr(self._writer, self._method)
- response = method(*self._args)
- except (socket.error, xmlrpclib.Fault, xmlrpclib.ProtocolError):
- traceback.print_exc()
- if self._response_cb:
- gobject.idle_add(self._response_cb, response, self._user_data)
- self._controller.notify_request_done(self)
-
-class ThreadedUnicastStreamWriter(UnicastStreamWriterBase):
- def __init__(self, stream, service, owner_nick_name):
- self._requests_lock = threading.Lock()
- self._requests = []
- UnicastStreamWriterBase.__init__(self, stream, service, owner_nick_name)
-
- def _add_request(self, request):
- self._requests_lock.acquire()
- if not request in self._requests:
- self._requests.append(request)
- self._requests_lock.release()
-
- def write(self, response_cb, user_data, data):
- """Write some data to the default endpoint of this pipe on the remote server."""
- request = ThreadedRequest(self, self._xmlrpc_addr, "message", response_cb,
- user_data, self._owner_nick_name, data)
- self._add_request(request)
- request.start()
-
- def custom_request(self, method_name, response_cb, user_data, *args):
- """Call a custom XML-RPC method on the remote server."""
- request = ThreadedRequest(self, self._xmlrpc_addr, method_name, response_cb,
- user_data, *args)
- self._add_request(request)
- request.start()
-
- def notify_request_done(self, request):
- self._requests_lock.acquire()
- if request in self._requests:
- self._requests.remove(request)
- self._requests_lock.release()
-
-
class UnicastStream(Stream):
def __init__(self, service, group):
Stream.__init__(self, service, group)
@@ -158,11 +94,8 @@ class UnicastStream(Stream):
raise ValueError("Handler name 'message' is a reserved handler.")
self._reader.register_function(handler, name)
- def new_writer(self, service, threaded=False):
- if threaded:
- return ThreadedUnicastStreamWriter(self, service, self._owner_nick_name)
- else:
- return UnicastStreamWriter(self, service, self._owner_nick_name)
+ def new_writer(self, service):
+ return UnicastStreamWriter(self, service, self._owner_nick_name)
class MulticastStream(Stream):
@@ -182,5 +115,5 @@ class MulticastStream(Stream):
[ nick_name, data ] = data.split(" |**| ", 2)
self.recv(nick_name, data)
- def new_writer(self, service=None, threaded=False):
+ def new_writer(self, service=None):
return self