author | Tero Marttila <terom@fixme.fi> |
Mon, 31 Aug 2009 22:19:16 +0300 | |
branch | connect-async |
changeset 45 | bb49bf8222ed |
parent 28 | 020c89baaa33 |
permissions | -rw-r--r-- |
28
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
Abstract Client interface |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
4 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
5 |
class Client (object) : |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
6 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
A Client establishes a connection to some remote Service. |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
8 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
9 |
This is an abstract base class that is further impemented by e.g. TCP or SSL. |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
10 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
11 |
Note that a Client behaves more like a factory, such that the Client itself is not a Transport, one must instead |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
12 |
call .connect(), rather like one must call Service.accept(). |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
13 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
14 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
15 |
def __init__ (self, endpoint) : |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
16 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
17 |
Connect to the given remote endpoint. |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
18 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
19 |
endpoint - the remote Endpoint to connect to |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
20 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
21 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
raise NotImplementedError() |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
23 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
24 |
def connect (self, cls=None) : |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
25 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
Perform the connect operation, returning a new Transport. |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
27 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
28 |
cls - optional transport-specific type to use for the new connection. |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
29 |
""" |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
30 |
|
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
31 |
raise NotImplementedError() |
020c89baaa33
[transport] initial TCP implementation
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
32 |
|
45
bb49bf8222ed
initial async connect attempt
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
33 |
def connect_async (self, cls=None, reactor=None) : |
bb49bf8222ed
initial async connect attempt
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
34 |
raise NotImplementedError() |
bb49bf8222ed
initial async connect attempt
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
35 |