Files
i2p.i2p/apps/sam/python/src/i2p/SocketServer.py
2004-08-02 14:47:44 +00:00

73 lines
1.8 KiB
Python

"""
Emulation of Python SocketServer module using I2P sockets.
The Python module is described at
http://www.python.org/doc/current/lib/module-SocketServer.html
"""
# By aum.
# Hack to keep Python from importing from current directory:
# Use pylib package, then use = signs instead of from x import y.
import pylib
SocketServer = pylib.SocketServer
import i2p.socket
class BaseServer(SocketServer.BaseServer):
pass
class TCPServer(SocketServer.TCPServer, BaseServer):
socket_type = i2p.socket.SOCK_STREAM
def __init__(self, session, RequestHandlerClass):
"""
Constructor. May be extended, do not override.
The 'session' argument indicates the SAM session
name that should be used for the server. See module
i2p.socket for details on SAM sessions.
"""
BaseServer.__init__(self, session, RequestHandlerClass)
#self.socket = socket.socket(self.address_family,
# self.socket_type)
self.session = session
self.socket = i2p.socket.socket(session, self.socket_type)
self.server_bind()
self.server_activate()
class UDPServer(TCPServer, SocketServer.UDPServer):
pass
class ForkingMixIn(SocketServer.ForkingMixIn):
pass
class ThreadingMixIn(SocketServer.ThreadingMixIn):
pass
class ForkingUDPServer(ForkingMixIn, UDPServer):
pass
class ForkingTCPServer(ForkingMixIn, TCPServer):
pass
class ThreadingUDPServer(ThreadingMixIn, UDPServer):
pass
class ThreadingTCPServer(ThreadingMixIn, TCPServer):
pass
class BaseRequestHandler(SocketServer.BaseRequestHandler):
pass
class StreamRequestHandler(SocketServer.StreamRequestHandler):
pass
class DatagramRequestHandler(SocketServer.DatagramRequestHandler):
pass