@@ -17,14 +17,17 @@ import "../protocol_interfaces.dart";
1717import "../scripting_api.dart" as scripting_api;
1818
1919import "content.dart" ;
20- import "discovery/discovery_configuration.dart" ;
2120import "servient.dart" ;
2221
2322/// Implementation of the [scripting_api.ThingDiscovery] interface.
2423class ThingDiscovery extends Stream <ThingDescription >
2524 implements scripting_api.ThingDiscovery {
2625 /// Creates a new [ThingDiscovery] object with a given [thingFilter] .
27- ThingDiscovery (this .thingFilter, this ._servient) {
26+ ThingDiscovery (
27+ this .thingFilter,
28+ this ._servient,
29+ this ._discoveryConfigurations,
30+ ) {
2831 _stream = _start ();
2932 }
3033
@@ -42,40 +45,45 @@ class ThingDiscovery extends Stream<ThingDescription>
4245 @override
4346 final scripting_api.ThingFilter ? thingFilter;
4447
48+ final List <scripting_api.DiscoveryConfiguration > _discoveryConfigurations;
49+
4550 late final Stream <ThingDescription > _stream;
4651
4752 Stream <ThingDescription > _start () async * {
48- for (final discoveryParameter in _servient.discoveryConfigurations ) {
53+ for (final discoveryParameter in _discoveryConfigurations ) {
4954 switch (discoveryParameter) {
50- case DnsSdDConfiguration (
55+ case scripting_api. DnsSdDConfiguration (
5156 : final discoveryType,
5257 domainName: final domain,
5358 : final protocolType,
5459 ):
5560 yield * _discoverUsingDnsSd (discoveryType, domain, protocolType);
56- case CoreLinkFormatConfiguration (
61+ case scripting_api. CoreLinkFormatConfiguration (
5762 : final uri,
5863 : final discoveryType,
5964 ):
6065 yield * _discoverWithCoreLinkFormat (uri, discoveryType);
61- case CoreResourceDirectoryConfiguration (
66+ case scripting_api. CoreResourceDirectoryConfiguration (
6267 : final uri,
6368 : final discoveryType,
6469 ):
6570 yield * _discoverFromCoreResourceDirectory (uri, discoveryType);
66- case DirectConfiguration (: final uri):
71+ case scripting_api. DirectConfiguration (: final uri):
6772 if (! uri.hasMulticastAddress) {
6873 yield * Stream .fromFuture (_servient.requestThingDescription (uri));
6974 } else {
7075 yield * _performMulticastDiscovery (uri);
7176 }
72- case ExploreDirectoryConfiguration (: final uri, : final thingFilter):
77+ case scripting_api.ExploreDirectoryConfiguration (
78+ : final uri,
79+ : final thingFilter
80+ ):
7381 final thingDiscoveryProcess = await _servient.exploreDirectory (
7482 uri,
7583 thingFilter: thingFilter,
7684 );
7785 yield * thingDiscoveryProcess;
78- case MqttDiscoveryConfiguration (
86+ case scripting_api. MqttDiscoveryConfiguration (
7987 : final brokerUri,
8088 : final discoveryTopic,
8189 : final expectedContentType,
@@ -122,9 +130,9 @@ class ThingDiscovery extends Stream<ThingDescription>
122130 }
123131
124132 Stream <ThingDescription > _discoverUsingDnsSd (
125- DiscoveryType discoveryType,
133+ scripting_api. DiscoveryType discoveryType,
126134 String domainName,
127- ProtocolType protocolType,
135+ scripting_api. ProtocolType protocolType,
128136 ) async * {
129137 if (domainName != ".local" ) {
130138 throw UnimplementedError (
@@ -134,7 +142,7 @@ class ThingDiscovery extends Stream<ThingDescription>
134142
135143 final serviceNameSegments = < String > [];
136144
137- if (discoveryType == DiscoveryType .directory) {
145+ if (discoveryType == scripting_api. DiscoveryType .directory) {
138146 serviceNameSegments.addAll (const ["_directory" , "_sub" ]);
139147 }
140148
@@ -155,7 +163,7 @@ class ThingDiscovery extends Stream<ThingDescription>
155163 Stream <ThingDescription > _performMdnsDiscovery (
156164 String domainName,
157165 String defaultUriScheme,
158- DiscoveryType expectedType,
166+ scripting_api. DiscoveryType expectedType,
159167 ) async * {
160168 final MDnsClient client = MDnsClient ();
161169 await client.start ();
@@ -233,7 +241,7 @@ class ThingDiscovery extends Stream<ThingDescription>
233241
234242 Stream <ThingDescription > _discoverWithCoreLinkFormat (
235243 Uri uri,
236- DiscoveryType discoveryType,
244+ scripting_api. DiscoveryType discoveryType,
237245 ) async * {
238246 await for (final coreWebLinks in _performCoreLinkFormatDiscovery (
239247 uri,
@@ -246,7 +254,7 @@ class ThingDiscovery extends Stream<ThingDescription>
246254
247255 Stream <ThingDescription > _discoverFromCoreResourceDirectory (
248256 Uri uri,
249- DiscoveryType discoveryType,
257+ scripting_api. DiscoveryType discoveryType,
250258 ) async * {
251259 yield * _performCoreLinkFormatDiscovery (
252260 uri,
0 commit comments