Skip to content

Commit 731ed1b

Browse files
committed
chore(core): make createClient async
1 parent a3b65be commit 731ed1b

File tree

10 files changed

+22
-22
lines changed

10 files changed

+22
-22
lines changed

lib/src/binding_coap/coap_client_factory.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ final class CoapClientFactory implements ProtocolClientFactory {
3636
}
3737

3838
@override
39-
ProtocolClient createClient() => CoapClient(
39+
Future<ProtocolClient> createClient() async => CoapClient(
4040
coapConfig: coapConfig,
4141
pskCredentialsCallback: _pskCredentialsCallback,
4242
aceSecurityCallback: _aceSecurityCallback,

lib/src/binding_http/http_client_factory.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ final class HttpClientFactory implements ProtocolClientFactory {
3333
}
3434

3535
@override
36-
ProtocolClient createClient() => HttpClient(
36+
Future<ProtocolClient> createClient() async => HttpClient(
3737
basicCredentialsCallback: _basicCredentialsCallback,
3838
bearerCredentialsCallback: _bearerCredentialsCallback,
3939
);

lib/src/binding_mqtt/mqtt_client_factory.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ final class MqttClientFactory implements ProtocolClientFactory {
2525
_basicCredentialsCallback;
2626

2727
@override
28-
ProtocolClient createClient() => MqttClient(
28+
Future<ProtocolClient> createClient() async => MqttClient(
2929
mqttConfig: _mqttConfig,
3030
basicCredentialsCallback: _basicCredentialsCallback,
3131
);

lib/src/core/implementation/consumed_thing.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ class ConsumedThing implements scripting_api.ConsumedThing {
3535
/// Determines the id of this [ConsumedThing].
3636
String get identifier => thingDescription.identifier;
3737

38-
(ProtocolClient client, AugmentedForm form) _getClientFor(
38+
Future<(ProtocolClient client, AugmentedForm form)> _getClientFor(
3939
List<Form> forms,
4040
OperationType operationType,
4141
InteractionAffordance interactionAffordance, {
4242
required int? formIndex,
4343
required Map<String, Object>? uriVariables,
44-
}) {
44+
}) async {
4545
final augmentedForms = forms
4646
.map(
4747
(form) => AugmentedForm.new(
@@ -59,7 +59,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
5959
if (formIndex >= 0 && formIndex < forms.length) {
6060
foundForm = augmentedForms[formIndex];
6161
final scheme = foundForm.href.scheme;
62-
client = servient.clientFor(scheme);
62+
client = await servient.createClient(scheme);
6363
} else {
6464
throw ArgumentError(
6565
'ConsumedThing "$title" missing formIndex for '
@@ -86,7 +86,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
8686
orElse: () => throw Exception("No matching form found!"),
8787
);
8888
final scheme = foundForm.href.scheme;
89-
client = servient.clientFor(scheme);
89+
client = await servient.createClient(scheme);
9090
}
9191

9292
return (client, foundForm);
@@ -108,7 +108,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
108108
);
109109
}
110110

111-
final (ProtocolClient client, AugmentedForm form) = _getClientFor(
111+
final (ProtocolClient client, AugmentedForm form) = await _getClientFor(
112112
property.forms,
113113
OperationType.readproperty,
114114
property,
@@ -137,7 +137,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
137137
);
138138
}
139139

140-
final (client, form) = _getClientFor(
140+
final (client, form) = await _getClientFor(
141141
property.forms,
142142
OperationType.writeproperty,
143143
property,
@@ -173,7 +173,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
173173
);
174174
}
175175

176-
final (client, form) = _getClientFor(
176+
final (client, form) = await _getClientFor(
177177
action.forms,
178178
OperationType.invokeaction,
179179
action,
@@ -269,7 +269,7 @@ class ConsumedThing implements scripting_api.ConsumedThing {
269269
subscriptions = _subscribedEvents;
270270
}
271271

272-
final (client, form) = _getClientFor(
272+
final (client, form) = await _getClientFor(
273273
affordance.forms,
274274
operationType,
275275
affordance,

lib/src/core/implementation/protocol_interfaces/protocol_client_factory.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ abstract interface class ProtocolClientFactory {
2626

2727
/// Creates a new [ProtocolClient] with that supports one or more of the given
2828
/// [schemes].
29-
ProtocolClient createClient();
29+
Future<ProtocolClient> createClient();
3030

3131
/// Indicates whether this [ProtocolClientFactory] supports a given
3232
/// [operationType] and subprotocol.

lib/src/core/implementation/servient.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ class Servient {
198198
_clientFactories.remove(scheme);
199199

200200
/// Returns the [ProtocolClient] associated with a given [scheme].
201-
ProtocolClient clientFor(String scheme) {
201+
Future<ProtocolClient> createClient(String scheme) async {
202202
final clientFactory = _clientFactories[scheme];
203203

204204
if (clientFactory == null) {
@@ -232,7 +232,7 @@ class Servient {
232232

233233
/// Requests a [ThingDescription] from a [url].
234234
Future<ThingDescription> requestThingDescription(Uri url) async {
235-
final client = clientFor(url.scheme);
235+
final client = await createClient(url.scheme);
236236
final content = await client.requestThingDescription(url);
237237

238238
final dataSchemaValue = await contentSerdes.contentToValue(content, null);

lib/src/core/implementation/thing_discovery.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ class ThingDiscovery extends Stream<ThingDescription>
6969
}
7070
}
7171

72-
ProtocolClient _clientForUriScheme(Uri uri) {
72+
Future<ProtocolClient> _clientForUriScheme(Uri uri) async {
7373
final uriScheme = uri.scheme;
7474
final existingClient = _clients[uriScheme];
7575

7676
if (existingClient != null) {
7777
return existingClient;
7878
}
7979

80-
final newClient = _servient.clientFor(uriScheme);
80+
final newClient = await _servient.createClient(uriScheme);
8181
_clients[uriScheme] = newClient;
8282
return newClient;
8383
}
@@ -106,7 +106,7 @@ class ThingDiscovery extends Stream<ThingDescription>
106106
}
107107

108108
Stream<ThingDescription> _discoverDirectly(Uri uri) async* {
109-
final client = _clientForUriScheme(uri);
109+
final client = await _clientForUriScheme(uri);
110110

111111
yield* client
112112
.discoverDirectly(uri, disableMulticast: true)
@@ -180,7 +180,7 @@ class ThingDiscovery extends Stream<ThingDescription>
180180
) async* {
181181
final Set<Uri> discoveredUris = {};
182182
final discoveryUri = uri.toLinkFormatDiscoveryUri(resourceType);
183-
final client = _clientForUriScheme(uri);
183+
final client = await _clientForUriScheme(uri);
184184

185185
await for (final coreWebLink
186186
in client.discoverWithCoreLinkFormat(discoveryUri)) {

test/binding_coap/binding_coap_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ void main() {
5050
expect(defaultClientFactory.coapConfig, null);
5151
expect(defaultClientFactory.init(), true);
5252

53-
final coapClient = defaultClientFactory.createClient();
5453

5554
await coapClient.start();
55+
final coapClient = await defaultClientFactory.createClient();
5656

5757
await coapClient.stop();
5858

test/core/discovery_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ class _MockedProtocolClient implements ProtocolClient {
242242

243243
class _MockedProtocolClientFactory implements ProtocolClientFactory {
244244
@override
245-
ProtocolClient createClient() {
245+
Future<ProtocolClient> createClient() async {
246246
return _MockedProtocolClient();
247247
}
248248

test/core/servient_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const testUriScheme = "test";
1111

1212
class MockedProtocolClientFactory implements ProtocolClientFactory {
1313
@override
14-
ProtocolClient createClient() {
14+
Future<ProtocolClient> createClient() {
1515
throw UnimplementedError("Instantiating a client is not supported yet.");
1616
}
1717

@@ -69,7 +69,7 @@ void main() {
6969
final servient = Servient();
7070

7171
expect(
72-
() => servient.clientFor(testUriScheme),
72+
() => servient.createClient(testUriScheme),
7373
throwsA(isA<DartWotException>()),
7474
);
7575
},

0 commit comments

Comments
 (0)