Skip to content

Commit

Permalink
feat: remove CoAP observe subprotocol
Browse files Browse the repository at this point in the history
  • Loading branch information
JKRhb committed Oct 17, 2024
1 parent 4148ad5 commit 30afd80
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 60 deletions.
14 changes: 3 additions & 11 deletions lib/src/binding_coap/coap_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -435,22 +435,14 @@ final class CoapClient extends ProtocolClient
accept: form.accept,
);

final subprotocol = form.coapSubprotocol ?? operationType.subprotocol;

final coapClient = coap.CoapClient(
form.resolvedHref,
config: _InternalCoapConfig(_coapConfig ?? const CoapConfig()),
);

if (subprotocol == CoapSubprotocol.observe) {
final observeClientRelation = await coapClient.observe(request);
observeClientRelation.listen(handleResponse);
return CoapSubscription(coapClient, observeClientRelation, complete);
}

final response = await coapClient.send(request);
handleResponse(response);
return CoapSubscription(coapClient, null, complete);
final observeClientRelation = await coapClient.observe(request);
observeClientRelation.listen(handleResponse);
return CoapSubscription(coapClient, observeClientRelation, complete);
}

@override
Expand Down
8 changes: 1 addition & 7 deletions lib/src/binding_coap/coap_client_factory.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import "../../core.dart";

import "coap_client.dart";
import "coap_config.dart";
import "coap_definitions.dart";

/// A [ProtocolClientFactory] that produces CoAP clients.
final class CoapClientFactory implements ProtocolClientFactory {
Expand Down Expand Up @@ -56,11 +55,6 @@ final class CoapClientFactory implements ProtocolClientFactory {
OperationType.unsubscribeevent,
];

if (observeOperations.contains(operationType)) {
return CoapSubprotocol.tryParse(subprotocol ?? "") ==
CoapSubprotocol.observe;
}

return subprotocol == null;
return observeOperations.contains(operationType);
}
}
17 changes: 0 additions & 17 deletions lib/src/binding_coap/coap_definitions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,3 @@ enum CoapRequestMethod {
static CoapRequestMethod? fromString(String stringValue) =>
_registry[stringValue];
}

/// Enumeration of available CoAP subprotocols.
enum CoapSubprotocol {
/// Subprotocol for observing CoAP resources.
observe,
;

/// Tries to match the given [subprotocol] string to one of the known
/// [CoapSubprotocol.values].
static CoapSubprotocol? tryParse(String subprotocol) {
if (subprotocol == "cov:observe") {
return CoapSubprotocol.observe;
}

return null;
}
}
25 changes: 0 additions & 25 deletions lib/src/binding_coap/coap_extensions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,6 @@ extension CoapFormExtension on AugmentedForm {
bool get usesAutoScheme =>
securityDefinitions.whereType<AutoSecurityScheme>().isNotEmpty;

/// Get the [CoapSubprotocol] for this [AugmentedForm], if one is set.
CoapSubprotocol? get coapSubprotocol {
if (subprotocol == coapPrefixMapping.expandCurieString("observe")) {
return CoapSubprotocol.observe;
}

return null;
}

/// The Content-Format for CoAP request and response payloads.
CoapMediaType get contentFormat {
final formDefinition = _obtainVocabularyTerm<int>("contentFormat");
Expand Down Expand Up @@ -160,22 +151,6 @@ extension OperationTypeExtension on OperationType {
return CoapRequestMethod.get;
}
}

/// Determines the [CoapSubprotocol] (if any) for this [OperationType].
///
/// The only supported subprotocol at the moment is `observe`.
CoapSubprotocol? get subprotocol {
if ([
OperationType.subscribeevent,
OperationType.unsubscribeevent,
OperationType.observeproperty,
OperationType.unobserveproperty,
].contains(this)) {
return CoapSubprotocol.observe;
}

return null;
}
}

/// Extension for easily extracting the [content] from a [CoapResponse].
Expand Down

0 comments on commit 30afd80

Please sign in to comment.