|
17 | 17 | from .backend import Backend |
18 | 18 | from .controller import Controller |
19 | 19 | from .exceptions import LaunchError |
20 | | -from .transport.adapter import TransportAdapter |
| 20 | +from .transport import Transport |
21 | 21 | from .transport.epics.ca.options import EpicsCAOptions |
22 | 22 | from .transport.epics.pva.options import EpicsPVAOptions |
23 | 23 | from .transport.graphql.options import GraphQLOptions |
|
33 | 33 | class FastCS: |
34 | 34 | """For launching a controller with given transport(s).""" |
35 | 35 |
|
36 | | - def __init__( |
37 | | - self, |
38 | | - controller: Controller, |
39 | | - transport_options: TransportOptions, |
40 | | - ): |
| 36 | + def __init__(self, controller: Controller, transports: list[Transport]): |
41 | 37 | self._loop = asyncio.get_event_loop() |
42 | 38 | self._controller = controller |
43 | 39 | self._backend = Backend(controller, self._loop) |
44 | | - transport: TransportAdapter |
45 | | - self._transports: list[TransportAdapter] = [] |
46 | | - for option in transport_options: |
47 | | - match option: |
48 | | - case EpicsPVAOptions(): |
49 | | - from .transport.epics.pva.adapter import EpicsPVATransport |
50 | | - |
51 | | - transport = EpicsPVATransport( |
52 | | - self._backend.controller_api, |
53 | | - option, |
54 | | - ) |
55 | | - case EpicsCAOptions(): |
56 | | - from .transport.epics.ca.adapter import EpicsCATransport |
57 | | - |
58 | | - transport = EpicsCATransport( |
59 | | - self._backend.controller_api, |
60 | | - self._loop, |
61 | | - option, |
62 | | - ) |
63 | | - case TangoOptions(): |
64 | | - from .transport.tango.adapter import TangoTransport |
65 | | - |
66 | | - transport = TangoTransport( |
67 | | - self._backend.controller_api, |
68 | | - self._loop, |
69 | | - option, |
70 | | - ) |
71 | | - case RestOptions(): |
72 | | - from .transport.rest.adapter import RestTransport |
73 | | - |
74 | | - transport = RestTransport( |
75 | | - self._backend.controller_api, |
76 | | - option, |
77 | | - ) |
78 | | - case GraphQLOptions(): |
79 | | - from .transport.graphql.adapter import GraphQLTransport |
80 | | - |
81 | | - transport = GraphQLTransport( |
82 | | - self._backend.controller_api, |
83 | | - option, |
84 | | - ) |
85 | | - |
86 | | - self._transports.append(transport) |
| 40 | + self._transports = transports |
| 41 | + for transport in self._transports: |
| 42 | + transport.initialise( |
| 43 | + controller_api=self._backend.controller_api, loop=self._loop |
| 44 | + ) |
87 | 45 |
|
88 | 46 | def create_docs(self) -> None: |
89 | 47 | for transport in self._transports: |
|
0 commit comments