Skip to content

Commit 9cbd07c

Browse files
committed
feat: update connector methods to return threading.Thread lists
1 parent 154f227 commit 9cbd07c

File tree

7 files changed

+95
-46
lines changed

7 files changed

+95
-46
lines changed

adf_core_python/core/launcher/connect/connector.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from abc import ABC, abstractmethod
23

34
from rcrs_core.connection.componentLauncher import ComponentLauncher
@@ -16,7 +17,7 @@ def connect(
1617
component_launcher: ComponentLauncher,
1718
config: Config,
1819
loader: AbstractLoader,
19-
) -> None:
20+
) -> list[threading.Thread]:
2021
raise NotImplementedError
2122

2223
def get_connected_agent_count(self) -> int:

adf_core_python/core/launcher/connect/connector_ambulance_centre.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.agents.ambulanceCenterAgent import AmbulanceCenterAgent
@@ -21,10 +22,12 @@ def connect(
2122
component_launcher: ComponentLauncher,
2223
config: Config,
2324
loader: AbstractLoader,
24-
) -> None:
25+
) -> list[threading.Thread]:
2526
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2627
if count == 0:
27-
return
28+
return []
29+
30+
threads: list[threading.Thread] = []
2831

2932
for _ in range(count):
3033
# tactics_ambulance_centre: TacticsAmbulanceCentre
@@ -50,12 +53,16 @@ def connect(
5053
)
5154

5255
# TODO: component_launcher.generate_request_ID can cause race condition
53-
component_launcher.connect(
54-
# TODO: AmbulanceCenterAgent is not implemented precompute method and other methods
55-
AmbulanceCenterAgent(
56-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
57-
), # type: ignore
58-
component_launcher.generate_request_ID(),
56+
thread = threading.Thread(
57+
target=component_launcher.connect,
58+
args=(
59+
AmbulanceCenterAgent(
60+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
61+
), # type: ignore
62+
component_launcher.generate_request_ID(),
63+
),
5964
)
65+
threads.append(thread)
6066

6167
self.logger.info("Connected ambulance centre (count: %d)" % count)
68+
return threads

adf_core_python/core/launcher/connect/connector_ambulance_team.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.connection.componentLauncher import ComponentLauncher
@@ -24,10 +25,12 @@ def connect(
2425
component_launcher: ComponentLauncher,
2526
config: Config,
2627
loader: AbstractLoader,
27-
) -> None:
28+
) -> list[threading.Thread]:
2829
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2930
if count == 0:
30-
return
31+
return []
32+
33+
threads: list[threading.Thread] = []
3134

3235
for _ in range(count):
3336
if loader.get_tactics_ambulance_team() is None:
@@ -52,17 +55,23 @@ def connect(
5255
)
5356

5457
# TODO: component_launcher.generate_request_ID can cause race condition
55-
component_launcher.connect(
56-
PlatoonAmbulance(
57-
tactics_ambulance_team,
58-
"ambulance_team",
59-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
60-
config.get_value(ConfigKey.KEY_DEBUG_FLAG, False),
61-
"test",
62-
module_config,
63-
develop_data,
58+
# threading
59+
thread = threading.Thread(
60+
target=component_launcher.connect,
61+
args=(
62+
PlatoonAmbulance(
63+
tactics_ambulance_team,
64+
"ambulance_team",
65+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
66+
config.get_value(ConfigKey.KEY_DEBUG_FLAG, False),
67+
"test",
68+
module_config,
69+
develop_data,
70+
),
71+
component_launcher.generate_request_ID(),
6472
),
65-
component_launcher.generate_request_ID(),
6673
)
74+
threads.append(thread)
6775

6876
self.logger.info("Connected ambulance team (count: %d)" % count)
77+
return threads

adf_core_python/core/launcher/connect/connector_fire_brigade.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.agents.fireBrigadeAgent import FireBrigadeAgent
@@ -21,10 +22,12 @@ def connect(
2122
component_launcher: ComponentLauncher,
2223
config: Config,
2324
loader: AbstractLoader,
24-
) -> None:
25+
) -> list[threading.Thread]:
2526
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2627
if count == 0:
27-
return
28+
return []
29+
30+
threads: list[threading.Thread] = []
2831

2932
for _ in range(count):
3033
# tactics_fire_brigade: TacticsFireBrigade
@@ -50,11 +53,16 @@ def connect(
5053
)
5154

5255
# TODO: component_launcher.generate_request_ID can cause race condition
53-
component_launcher.connect(
54-
FireBrigadeAgent(
55-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
56+
thread = threading.Thread(
57+
target=component_launcher.connect,
58+
args=(
59+
FireBrigadeAgent(
60+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
61+
),
62+
component_launcher.generate_request_ID(),
5663
),
57-
component_launcher.generate_request_ID(),
5864
)
65+
threads.append(thread)
5966

6067
self.logger.info("Connected fire brigade (count: %d)" % count)
68+
return threads

adf_core_python/core/launcher/connect/connector_fire_station.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.agents.fireStationAgent import FireStationAgent
@@ -21,10 +22,12 @@ def connect(
2122
component_launcher: ComponentLauncher,
2223
config: Config,
2324
loader: AbstractLoader,
24-
) -> None:
25+
) -> list[threading.Thread]:
2526
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2627
if count == 0:
27-
return
28+
return []
29+
30+
threads: list[threading.Thread] = []
2831

2932
for _ in range(count):
3033
# tactics_fire_station: TacticsFireStation
@@ -50,11 +53,16 @@ def connect(
5053
)
5154

5255
# TODO: component_launcher.generate_request_ID can cause race condition
53-
component_launcher.connect(
54-
FireStationAgent(
55-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
56-
), # type: ignore
57-
component_launcher.generate_request_ID(),
56+
thread = threading.Thread(
57+
target=component_launcher.connect,
58+
args=(
59+
FireStationAgent(
60+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
61+
), # type: ignore
62+
component_launcher.generate_request_ID(),
63+
),
5864
)
65+
threads.append(thread)
5966

6067
self.logger.info("Connected fire station (count: %d)" % count)
68+
return threads

adf_core_python/core/launcher/connect/connector_police_force.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.agents.policeForceAgent import PoliceForceAgent
@@ -21,10 +22,12 @@ def connect(
2122
component_launcher: ComponentLauncher,
2223
config: Config,
2324
loader: AbstractLoader,
24-
) -> None:
25+
) -> list[threading.Thread]:
2526
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2627
if count == 0:
27-
return
28+
return []
29+
30+
threads: list[threading.Thread] = []
2831

2932
for _ in range(count):
3033
# tactics_police_force: TacticsPoliceForce
@@ -50,11 +53,16 @@ def connect(
5053
)
5154

5255
# TODO: component_launcher.generate_request_ID can cause race condition
53-
component_launcher.connect(
54-
PoliceForceAgent(
55-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
56+
thread = threading.Thread(
57+
target=component_launcher.connect,
58+
args=(
59+
PoliceForceAgent(
60+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
61+
),
62+
component_launcher.generate_request_ID(),
5663
),
57-
component_launcher.generate_request_ID(),
5864
)
65+
threads.append(thread)
5966

6067
self.logger.info("Connected ambulance centre (count: %d)" % count)
68+
return threads

adf_core_python/core/launcher/connect/connector_police_office.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import threading
12
from logging import Logger, getLogger
23

34
from rcrs_core.agents.policeOfficeAgent import PoliceOfficeAgent
@@ -21,10 +22,12 @@ def connect(
2122
component_launcher: ComponentLauncher,
2223
config: Config,
2324
loader: AbstractLoader,
24-
) -> None:
25+
) -> list[threading.Thread]:
2526
count: int = config.get_value(ConfigKey.KEY_AMBULANCE_CENTRE_COUNT, 0)
2627
if count == 0:
27-
return
28+
return []
29+
30+
threads: list[threading.Thread] = []
2831

2932
for _ in range(count):
3033
# tactics_police_office: TacticsPoliceOffice
@@ -50,11 +53,16 @@ def connect(
5053
)
5154

5255
# TODO: component_launcher.generate_request_ID can cause race condition
53-
component_launcher.connect(
54-
PoliceOfficeAgent(
55-
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
56+
thread = threading.Thread(
57+
target=component_launcher.connect,
58+
args=(
59+
PoliceOfficeAgent(
60+
config.get_value(ConfigKey.KEY_PRECOMPUTE, False),
61+
), # type: ignore
62+
component_launcher.generate_request_ID(),
5663
),
57-
component_launcher.generate_request_ID(),
5864
)
65+
threads.append(thread)
5966

6067
self.logger.info("Connected ambulance centre (count: %d)" % count)
68+
return threads

0 commit comments

Comments
 (0)