+++ /dev/null
-"""\r
-the factory: \r
-exposes a nice and easy interface to the internals of rpyc. \r
-this module, along with Utils, are the only modules most clients will need.\r
-"""\r
-\r
-from Stream import SocketStream, PipeStream\r
-from Channel import Channel\r
-from Connection import Connection\r
-from AsyncNetProxy import AsyncNetProxy\r
-from weakref import WeakValueDictionary\r
-from Lib import DEFAULT_PORT\r
-\r
-\r
-__all__ = ["SocketConnection", "AuthSocketConnection", "PipeConnection", "Async"]\r
-_async_proxy_cache = WeakValueDictionary()\r
-\r
-class LoginError(Exception):\r
- pass\r
-\r
-def SocketConnection(host, port = DEFAULT_PORT, **kw):\r
- """shorthand for creating a conneciton over a socket to a server"""\r
- return Connection(Channel(SocketStream.from_new_socket(host, port, **kw)))\r
-\r
-def _create_auth_connection(chan, username, password):\r
- from Authentication import login\r
- if not login(chan, username, password):\r
- raise LoginError("the server did not accept the login")\r
- return Connection(chan)\r
- \r
-def AuthSocketConnection(host, username, password, port = DEFAULT_PORT, **kw):\r
- """shorthand for creating a conneciton over a socket to a server, with authentication"""\r
- chan = Channel(SocketStream.from_new_socket(host, port, **kw))\r
- return _create_auth_connection(chan, username, password)\r
-\r
-def PipeConnection(incoming, outgoing):\r
- """shorthand for creating a conneciton over a pipe"""\r
- return Connection(Channel(PipeStream(incoming, outgoing)))\r
-\r
-def AuthPipeConnection(incoming, outgoing, username, password):\r
- """shorthand for creating a conneciton over a pipe"""\r
- chan = Channel(PipeStream(incoming, outgoing))\r
- return _create_auth_connection(chan, username, password)\r
-\r
-def Async(proxy):\r
- """a factory for creating asynchronous proxies for existing synchronous ones"""\r
- key = id(proxy)\r
- if key in _async_proxy_cache:\r
- return _async_proxy_cache[key]\r
- else:\r
- new_proxy = AsyncNetProxy(proxy)\r
- _async_proxy_cache[key] = new_proxy\r
- return new_proxy\r
-\r
-\r
-\r
-\r