Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Darwin] Make MTRControllerFactory the OTA Provider Delegate #21224

Conversation

vivien-apple
Copy link
Contributor

Problem

This PR moves the OTA Provider delegate from MTRDeviceController to MTRControllerFactory.
It also internalise the conversion from an ota URL to a proper BDX URI since the BDX uri is supposed to use the nodeId used for the CASE session where the QueryImageResponse is issued:

The Operational Node ID in the host field SHALL match the NodeID of the OTA Provider responding with the QueryImageResponse.

This PR also change onto which dispatch queue the method of the MTROTAProviderDelegate are processed. Everything happens onto the chip work dispatch queue. It should not change much of the behaviour since most of the delegates exposes a completion handler that can be called from a different queue, their internally ensure that the work is dispatched to the chip work dispatch queue.

#fix #20948

Change overview

  • Register the delegate as a startup parameter of the MTRControllerFactory.
  • update the dispatch queue used for the MTROTAProviderDelegate callback methods.

Testing

It has been tested using the same procedure than #21161

@github-actions
Copy link

github-actions bot commented Jul 26, 2022

PR #21224: Size comparison from 925cff6 to 7e92471

Increases (2 builds for esp32, telink)
platform target config section 925cff6 7e92471 change % change
esp32 all-clusters-app c3devkit (read only) 1022414 1022416 2 0.0
.flash.text 1022414 1022416 2 0.0
telink light-switch-app tlsr9518adk80d text 567492 567496 4 0.0
Decreases (1 build for telink)
platform target config section 925cff6 7e92471 change % change
telink lighting-app tlsr9518adk80d text 584048 584046 -2 -0.0
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 925cff6 7e92471 change % change
bl602 lighting-app bl602 (read/write) 1381762 1381762 0 0.0
.bss 117538 117538 0 0.0
.data 4480 4480 0 0.0
.text 1051808 1051808 0 0.0
bl602+rpc (read/write) 1427170 1427170 0 0.0
.bss 124978 124978 0 0.0
.data 4600 4600 0 0.0
.text 1083464 1083464 0 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 668791 668791 0 0.0
(read/write) 182568 182568 0 0.0
.bss 74252 74252 0 0.0
.data 3356 3356 0 0.0
.rodata 88391 88391 0 0.0
.text 580084 580084 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 634391 634391 0 0.0
(read/write) 157820 157820 0 0.0
.bss 73548 73548 0 0.0
.data 3356 3356 0 0.0
.rodata 77615 77615 0 0.0
.text 556452 556452 0 0.0
lock-ftd LP_CC2652R7 (read only) 671907 671907 0 0.0
(read/write) 169644 169644 0 0.0
.bss 71332 71332 0 0.0
.data 3280 3280 0 0.0
.rodata 76475 76475 0 0.0
.text 594952 594952 0 0.0
lock-mtd LP_CC2652R7 (read only) 654167 654167 0 0.0
(read/write) 183072 183072 0 0.0
.bss 67020 67020 0 0.0
.data 3280 3280 0 0.0
.rodata 101183 101183 0 0.0
.text 552504 552504 0 0.0
pump-app LP_CC2652R7 (read only) 681579 681579 0 0.0
(read/write) 160804 160804 0 0.0
.bss 71396 71396 0 0.0
.data 3280 3280 0 0.0
.rodata 89219 89219 0 0.0
.text 591876 591876 0 0.0
pump-controller-app LP_CC2652R7 (read only) 667331 667331 0 0.0
(read/write) 175188 175188 0 0.0
.bss 71532 71532 0 0.0
.data 3276 3276 0 0.0
.rodata 85059 85059 0 0.0
.text 581792 581792 0 0.0
shell LP_CC2652R7 (read only) 661258 661258 0 0.0
(read/write) 185620 185620 0 0.0
.bss 76572 76572 0 0.0
.data 3360 3360 0 0.0
.rodata 85162 85162 0 0.0
.text 575780 575780 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 583642 583642 0 0.0
.app_xip_area 460780 460780 0 0.0
.bss 65656 65656 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 589554 589554 0 0.0
.app_xip_area 461964 461964 0 0.0
.bss 70384 70384 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 589454 589454 0 0.0
.app_xip_area 467408 467408 0 0.0
.bss 64896 64896 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1088680 1088680 0 0.0
.bss 133276 133276 0 0.0
.data 2048 2048 0 0.0
.text 953336 953336 0 0.0
BRD4161A+rpc (read/write) 1142980 1142980 0 0.0
.bss 149956 149956 0 0.0
.data 2260 2260 0 0.0
.text 990744 990744 0 0.0
BRD4161A+rs911x (read/write) 953224 953224 0 0.0
.bss 140992 140992 0 0.0
.data 2048 2048 0 0.0
.text 810164 810164 0 0.0
lock-app BRD4161A+wf200 (read/write) 1128668 1128668 0 0.0
.bss 144360 144360 0 0.0
.data 2056 2056 0 0.0
.text 982232 982232 0 0.0
window-app BRD4161A (read/write) 1082172 1082172 0 0.0
.bss 134748 134748 0 0.0
.data 2076 2076 0 0.0
.text 945324 945324 0 0.0
esp32 all-clusters-app c3devkit (read only) 1022414 1022416 2 0.0
(read/write) 1486618 1486618 0 0.0
.dram0.bss 70288 70288 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 216296 216296 0 0.0
.flash.text 1022414 1022416 2 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1075959 1075959 0 0.0
(read/write) 488616 488616 0 0.0
.dram0.bss 75800 75800 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 246676 246676 0 0.0
.flash.text 1070575 1070575 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w0+release (read/write) 641876 641876 0 0.0
.bss 69728 69728 0 0.0
.data 2028 2028 0 0.0
.text 567392 567392 0 0.0
lock k32w0+release (read/write) 699180 699180 0 0.0
.bss 70168 70168 0 0.0
.data 2036 2036 0 0.0
.text 624248 624248 0 0.0
linux all-clusters-app debug (read only) 2986169 2986169 0 0.0
(read/write) 155416 155416 0 0.0
.bss 61856 61856 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 85224 85224 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 1072 1072 0 0.0
.rodata 267627 267627 0 0.0
.text 2540354 2540354 0 0.0
all-clusters-minimal-app debug (read only) 2829081 2829081 0 0.0
(read/write) 147120 147120 0 0.0
.bss 61056 61056 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 77816 77816 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 267659 267659 0 0.0
.text 2385842 2385842 0 0.0
bridge-app debug+rpc (read only) 2343497 2343497 0 0.0
(read/write) 127024 127024 0 0.0
.bss 50144 50144 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 67272 67272 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 200008 200008 0 0.0
.text 1981058 1981058 0 0.0
chip-tool debug (read only) 10384369 10384369 0 0.0
(read/write) 631056 631056 0 0.0
.bss 24824 24824 0 0.0
.data 3266 3266 0 0.0
.data.rel.ro 596568 596568 0 0.0
.dynamic 608 608 0 0.0
.got 5088 5088 0 0.0
.init 27 27 0 0.0
.init_array 656 656 0 0.0
.rodata 531477 531477 0 0.0
.text 8401412 8401412 0 0.0
chip-tool-ipv6only arm64 (read only) 9808852 9808852 0 0.0
(read/write) 678561 678561 0 0.0
.bss 32897 32897 0 0.0
.data 3272 3272 0 0.0
.data.rel.ro 623904 623904 0 0.0
.dynamic 560 560 0 0.0
.got 13536 13536 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 466244 466244 0 0.0
.text 7760404 7760404 0 0.0
lighting-app debug+rpc (read only) 2566601 2566601 0 0.0
(read/write) 129992 129992 0 0.0
.bss 49696 49696 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72328 72328 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 215728 215728 0 0.0
.text 2180354 2180354 0 0.0
lock-app debug (read only) 2531625 2531625 0 0.0
(read/write) 124976 124976 0 0.0
.bss 48096 48096 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69304 69304 0 0.0
.dynamic 608 608 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 808 808 0 0.0
.rodata 230704 230704 0 0.0
.text 2135202 2135202 0 0.0
ota-provider-app debug (read only) 2335401 2335401 0 0.0
(read/write) 118776 118776 0 0.0
.bss 47744 47744 0 0.0
.data 1936 1936 0 0.0
.data.rel.ro 63288 63288 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 688 688 0 0.0
.rodata 205688 205688 0 0.0
.text 1966386 1966386 0 0.0
ota-requestor-app debug (read only) 2460809 2460809 0 0.0
(read/write) 126168 126168 0 0.0
.bss 50112 50112 0 0.0
.data 2240 2240 0 0.0
.data.rel.ro 67960 67960 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 209664 209664 0 0.0
.text 2079202 2079202 0 0.0
shell debug (read only) 2569825 2569825 0 0.0
(read/write) 141568 141568 0 0.0
.bss 57704 57704 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76888 76888 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 944 944 0 0.0
.rodata 230034 230034 0 0.0
.text 2182114 2182114 0 0.0
thermostat-no-ble arm64 (read only) 2342092 2342092 0 0.0
(read/write) 141345 141345 0 0.0
.bss 55297 55297 0 0.0
.data 1672 1672 0 0.0
.data.rel.ro 75624 75624 0 0.0
.dynamic 560 560 0 0.0
.got 4984 4984 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 139460 139460 0 0.0
.text 1965728 1965728 0 0.0
tv-app debug (read only) 3116649 3116649 0 0.0
(read/write) 257160 257160 0 0.0
.bss 167160 167160 0 0.0
.data 4736 4736 0 0.0
.data.rel.ro 78824 78824 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 968 968 0 0.0
.rodata 251400 251400 0 0.0
.text 2676706 2676706 0 0.0
tv-casting-app debug (read only) 5370969 5370969 0 0.0
(read/write) 158432 158432 0 0.0
.bss 51320 51320 0 0.0
.data 2432 2432 0 0.0
.data.rel.ro 98384 98384 0 0.0
.dynamic 608 608 0 0.0
.got 4736 4736 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 335521 335521 0 0.0
.text 4768802 4768802 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2449472 2449472 0 0.0
.bss 214508 214508 0 0.0
.data 5872 5872 0 0.0
.text 1412116 1412116 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1177675 1177675 0 0.0
bss 143132 143132 0 0.0
rodata 142692 142692 0 0.0
text 812924 812924 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1157727 1157727 0 0.0
bss 142368 142368 0 0.0
rodata 134224 134224 0 0.0
text 802232 802232 0 0.0
p6 all-clusters-app default (read only) 881568 881568 0 0.0
(read/write) 1687524 1687524 0 0.0
.bss 149128 149128 0 0.0
.data 2648 2648 0 0.0
.text 1527360 1527360 0 0.0
all-clusters-minimal-app default (read only) 882288 882288 0 0.0
(read/write) 1631636 1631636 0 0.0
.bss 148408 148408 0 0.0
.data 2648 2648 0 0.0
.text 1472192 1472192 0 0.0
light-app default (read only) 890592 890592 0 0.0
(read/write) 1551708 1551708 0 0.0
.bss 140312 140312 0 0.0
.data 2440 2440 0 0.0
.text 1400568 1400568 0 0.0
lock-app default (read only) 886120 886120 0 0.0
(read/write) 1589300 1589300 0 0.0
.bss 144768 144768 0 0.0
.data 2456 2456 0 0.0
.text 1433688 1433688 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 799980 799980 0 0.0
bss 70808 70808 0 0.0
noinit 40416 40416 0 0.0
text 567492 567496 4 0.0
lighting-app tlsr9518adk80d (read/write) 820064 820064 0 0.0
bss 71652 71652 0 0.0
noinit 40416 40416 0 0.0
text 584048 584046 -2 -0.0

@vivien-apple vivien-apple force-pushed the BDX_OTADelegateFromControllerToControllerFactory branch from 7e92471 to bd5785f Compare July 27, 2022 11:25
@github-actions
Copy link

github-actions bot commented Jul 27, 2022

PR #21224: Size comparison from 750eedf to bd5785f

Increases (3 builds for cc13x2_26x2, cyw30739, telink)
platform target config section 750eedf bd5785f change % change
cc13x2_26x2 pump-controller-app LP_CC2652R7 (read only) 666751 666759 8 0.0
.text 581264 581272 8 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 583326 583334 8 0.0
.app_xip_area 460464 460472 8 0.0
telink lighting-app tlsr9518adk80d text 583758 583760 2 0.0
Decreases (2 builds for cc13x2_26x2, telink)
platform target config section 750eedf bd5785f change % change
cc13x2_26x2 pump-controller-app LP_CC2652R7 (read/write) 175768 175760 -8 -0.0
telink light-switch-app tlsr9518adk80d text 567188 567186 -2 -0.0
Full report (32 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 750eedf bd5785f change % change
bl602 lighting-app bl602 (read/write) 1381450 1381450 0 0.0
.bss 117538 117538 0 0.0
.data 4480 4480 0 0.0
.text 1051524 1051524 0 0.0
bl602+rpc (read/write) 1426866 1426866 0 0.0
.bss 124978 124978 0 0.0
.data 4600 4600 0 0.0
.text 1083188 1083188 0 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 668427 668427 0 0.0
(read/write) 182932 182932 0 0.0
.bss 74252 74252 0 0.0
.data 3356 3356 0 0.0
.rodata 88411 88411 0 0.0
.text 579700 579700 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 634019 634019 0 0.0
(read/write) 157820 157820 0 0.0
.bss 73548 73548 0 0.0
.data 3356 3356 0 0.0
.rodata 77635 77635 0 0.0
.text 556060 556060 0 0.0
lock-ftd LP_CC2652R7 (read only) 671567 671567 0 0.0
(read/write) 169984 169984 0 0.0
.bss 71332 71332 0 0.0
.data 3280 3280 0 0.0
.rodata 76463 76463 0 0.0
.text 594624 594624 0 0.0
lock-mtd LP_CC2652R7 (read only) 653795 653795 0 0.0
(read/write) 183444 183444 0 0.0
.bss 67020 67020 0 0.0
.data 3280 3280 0 0.0
.rodata 101163 101163 0 0.0
.text 552152 552152 0 0.0
pump-app LP_CC2652R7 (read only) 680999 680999 0 0.0
(read/write) 161384 161384 0 0.0
.bss 71396 71396 0 0.0
.data 3280 3280 0 0.0
.rodata 89175 89175 0 0.0
.text 591340 591340 0 0.0
pump-controller-app LP_CC2652R7 (read only) 666751 666759 8 0.0
(read/write) 175768 175760 -8 -0.0
.bss 71532 71532 0 0.0
.data 3276 3276 0 0.0
.rodata 85007 85007 0 0.0
.text 581264 581272 8 0.0
shell LP_CC2652R7 (read only) 660894 660894 0 0.0
(read/write) 185984 185984 0 0.0
.bss 76572 76572 0 0.0
.data 3360 3360 0 0.0
.rodata 85174 85174 0 0.0
.text 575404 575404 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 583326 583334 8 0.0
.app_xip_area 460464 460472 8 0.0
.bss 65656 65656 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 589254 589254 0 0.0
.app_xip_area 461664 461664 0 0.0
.bss 70384 70384 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 589082 589082 0 0.0
.app_xip_area 467036 467036 0 0.0
.bss 64896 64896 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1088160 1088160 0 0.0
.bss 133276 133276 0 0.0
.data 2048 2048 0 0.0
.text 952816 952816 0 0.0
BRD4161A+rpc (read/write) 1142452 1142452 0 0.0
.bss 149956 149956 0 0.0
.data 2260 2260 0 0.0
.text 990216 990216 0 0.0
BRD4161A+rs911x (read/write) 952704 952704 0 0.0
.bss 140992 140992 0 0.0
.data 2048 2048 0 0.0
.text 809644 809644 0 0.0
lock-app BRD4161A+wf200 (read/write) 1128256 1128256 0 0.0
.bss 144360 144360 0 0.0
.data 2056 2056 0 0.0
.text 981820 981820 0 0.0
window-app BRD4161A (read/write) 1081636 1081636 0 0.0
.bss 134748 134748 0 0.0
.data 2076 2076 0 0.0
.text 944788 944788 0 0.0
esp32 all-clusters-app c3devkit (read only) 1022112 1022112 0 0.0
(read/write) 1486586 1486586 0 0.0
.dram0.bss 70288 70288 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 216264 216264 0 0.0
.flash.text 1022112 1022112 0 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1075771 1075771 0 0.0
(read/write) 488608 488608 0 0.0
.dram0.bss 75800 75800 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 246668 246668 0 0.0
.flash.text 1070387 1070387 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w0+release (read/write) 641776 641776 0 0.0
.bss 69728 69728 0 0.0
.data 2028 2028 0 0.0
.text 567292 567292 0 0.0
lock k32w0+release (read/write) 699056 699056 0 0.0
.bss 70168 70168 0 0.0
.data 2036 2036 0 0.0
.text 624124 624124 0 0.0
linux chip-tool-ipv6only arm64 (read only) 9835876 9835876 0 0.0
(read/write) 678593 678593 0 0.0
.bss 32897 32897 0 0.0
.data 3272 3272 0 0.0
.data.rel.ro 623936 623936 0 0.0
.dynamic 560 560 0 0.0
.got 13536 13536 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 467972 467972 0 0.0
.text 7785604 7785604 0 0.0
thermostat-no-ble arm64 (read only) 2342156 2342156 0 0.0
(read/write) 141393 141393 0 0.0
.bss 55297 55297 0 0.0
.data 1672 1672 0 0.0
.data.rel.ro 75672 75672 0 0.0
.dynamic 560 560 0 0.0
.got 4984 4984 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 139588 139588 0 0.0
.text 1965520 1965520 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2449328 2449328 0 0.0
.bss 214508 214508 0 0.0
.data 5872 5872 0 0.0
.text 1411972 1411972 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1177131 1177131 0 0.0
bss 143132 143132 0 0.0
rodata 142660 142660 0 0.0
text 812408 812408 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1157183 1157183 0 0.0
bss 142368 142368 0 0.0
rodata 134192 134192 0 0.0
text 801716 801716 0 0.0
p6 all-clusters-app default (read only) 881568 881568 0 0.0
(read/write) 1687044 1687044 0 0.0
.bss 149128 149128 0 0.0
.data 2648 2648 0 0.0
.text 1526880 1526880 0 0.0
all-clusters-minimal-app default (read only) 882288 882288 0 0.0
(read/write) 1631148 1631148 0 0.0
.bss 148408 148408 0 0.0
.data 2648 2648 0 0.0
.text 1471704 1471704 0 0.0
light-app default (read only) 890592 890592 0 0.0
(read/write) 1551516 1551516 0 0.0
.bss 140312 140312 0 0.0
.data 2440 2440 0 0.0
.text 1400376 1400376 0 0.0
lock-app default (read only) 886120 886120 0 0.0
(read/write) 1589116 1589116 0 0.0
.bss 144768 144768 0 0.0
.data 2456 2456 0 0.0
.text 1433504 1433504 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 799660 799660 0 0.0
bss 70808 70808 0 0.0
noinit 40416 40416 0 0.0
text 567188 567186 -2 -0.0
lighting-app tlsr9518adk80d (read/write) 819760 819760 0 0.0
bss 71652 71652 0 0.0
noinit 40416 40416 0 0.0
text 583758 583760 2 0.0

@woody-apple woody-apple enabled auto-merge (squash) July 27, 2022 17:00
@woody-apple woody-apple merged commit 5cd92fb into project-chip:master Jul 27, 2022
Comment on lines +467 to +468
auto systemState = _controllerFactory->GetSystemState();
_otaProviderDelegateBridge->Init(systemState->SystemLayer(), systemState->ExchangeMgr());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, at this point there might not be a usable system state on the controller factory. It gets created when the C++ controller is actually created, which has not happened here yet. :(

And yes, I know I said it's about where we do the event loop bits. I was wrong about this part here...

We really need to add some actual tests exercising this thing as controllers start up and shut down, to make sure it all works properly.

The right place to put this init is probably at the place where we start a controller successfully and the controller count is 1...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make MTRControllerFactory the OTA Provider Delegate
3 participants