1 | from synergine.core.SynergyObjectManager import SynergyObjectManager |
||
2 | from synergine.core.exception.NotFoundError import NotFoundError |
||
3 | |||
4 | |||
5 | class Connector(): |
||
6 | """ |
||
7 | Connector is the connection between terminals (Terminal) and Core. |
||
8 | """ |
||
9 | |||
10 | def __init__(self, synergy_object_manager: SynergyObjectManager, context): |
||
11 | """ |
||
12 | :param synergy_object_manager: The synergy manager |
||
13 | :return: void |
||
14 | """ |
||
15 | self._synergy_object_manager = synergy_object_manager |
||
16 | self._context = context |
||
17 | self._terminals = [] |
||
18 | |||
19 | def initialize_terminals(self, terminals_classes, configuration): |
||
20 | """ |
||
21 | |||
22 | :param terminal_classes: list of Terminal classes |
||
23 | :param configuration: ConfigurationManager |
||
24 | :return: void |
||
25 | """ |
||
26 | for terminal_class in terminals_classes: |
||
27 | terminal = terminal_class(configuration, self._context, self._synergy_object_manager) |
||
28 | terminal.initialize() |
||
29 | self._terminals.append(terminal) |
||
30 | |||
31 | def cycle(self, actions_done): |
||
32 | if True: # Stuff est-ce que 25 fps etc |
||
33 | self._send(actions_done) |
||
34 | |||
35 | def _send(self, actions_done): |
||
36 | for terminal in self._terminals: |
||
37 | terminal.start_of_cycle() |
||
38 | terminal.receive(actions_done) |
||
39 | terminal.end_of_cycle() |
||
40 | |||
41 | def terminate(self): |
||
42 | for terminal in self._terminals: |
||
43 | terminal.terminate() |
||
44 | |||
45 | def get_connection_who_have_to_run_core(self): |
||
0 ignored issues
–
show
|
|||
46 | display_who_run_core = None |
||
47 | for connected_display in self._terminals: |
||
48 | if connected_display.need_to_run_core(): |
||
49 | if display_who_run_core: |
||
50 | raise Exception('Two terminal try to run core. Just one can do it.') |
||
51 | return connected_display |
||
52 | return display_who_run_core |
||
53 | |||
54 | def send_screen_to_connection(self, screen): |
||
55 | """ |
||
56 | Actually used for Curses |
||
57 | :param screen: |
||
58 | :return:void |
||
59 | """ |
||
60 | display_who_run_core = self.get_connection_who_have_to_run_core() |
||
61 | if not display_who_run_core: |
||
62 | raise Exception('Need Terminal object to do that') |
||
63 | display_who_run_core.initialize_screen(screen) |
||
64 | |||
65 | def get_terminal(self, terminal_name): |
||
66 | for terminal in self._terminals: |
||
67 | if terminal.get_name() == terminal_name: |
||
68 | return terminal |
||
69 | raise NotFoundError() |
This check looks for invalid names for a range of different identifiers.
You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.
If your project includes a Pylint configuration file, the settings contained in that file take precedence.
To find out more about Pylint, please refer to their site.