diff --git a/source/doap/client/client.d b/source/doap/client/client.d index 52eb4e1..41b80de 100644 --- a/source/doap/client/client.d +++ b/source/doap/client/client.d @@ -1,8 +1,7 @@ module doap.client.client; import std.socket : Socket, Address, SocketType, ProtocolType, getAddress, parseAddress, InternetAddress, SocketShutdown; -import doap.client.messaging : CoapMessagingLayer; -import doap.client.mesglayer : CoapMessagingLayerFR; +import doap.client.messaging; import doap.protocol; import doap.client.request : CoapRequestBuilder, CoapRequest, CoapRequestFuture; import core.sync.mutex : Mutex; @@ -29,7 +28,7 @@ public class CoapClient * The messaging layer which provides * request-response message match-ups */ - private CoapMessagingLayerFR messaging; + private CoapMessagingLayer messaging; /** * The request-response match list @@ -56,7 +55,9 @@ public class CoapClient this(Address address) { this.address = address; - this.messaging = new CoapMessagingLayer(this); //UDP transport + + import doap.client.messaging.udp : UDPMessaging; + this.messaging = new UDPMessaging(this); //UDP transport this.requestsLock = new Mutex(); this.watcherSignal = new Condition(this.requestsLock); diff --git a/source/doap/client/mesglayer.d b/source/doap/client/messaging/core.d similarity index 94% rename from source/doap/client/mesglayer.d rename to source/doap/client/messaging/core.d index fcbb08c..a14d4cf 100644 --- a/source/doap/client/mesglayer.d +++ b/source/doap/client/messaging/core.d @@ -1,10 +1,10 @@ -module doap.client.mesglayer; +module doap.client.messaging.core; import doap.client.client : CoapClient; import std.socket : Address; import doap.protocol.packet : CoapPacket; -public abstract class CoapMessagingLayerFR +public abstract class CoapMessagingLayer { /** * The client diff --git a/source/doap/client/messaging/package.d b/source/doap/client/messaging/package.d new file mode 100644 index 0000000..524cab4 --- /dev/null +++ b/source/doap/client/messaging/package.d @@ -0,0 +1,3 @@ +module doap.client.messaging; + +public import doap.client.messaging.core : CoapMessagingLayer; \ No newline at end of file diff --git a/source/doap/client/messaging.d b/source/doap/client/messaging/udp.d similarity index 95% rename from source/doap/client/messaging.d rename to source/doap/client/messaging/udp.d index 014e16a..d8eafec 100644 --- a/source/doap/client/messaging.d +++ b/source/doap/client/messaging/udp.d @@ -1,4 +1,4 @@ -module doap.client.messaging; +module doap.client.messaging.udp; import doap.client.client : CoapClient; import core.thread : Thread; @@ -15,19 +15,15 @@ import std.socket : Address; import std.socket : Socket, Address, SocketType, ProtocolType, getAddress, parseAddress, InternetAddress, SocketShutdown; -import doap.client.mesglayer : CoapMessagingLayerFR; - -// TODO: Generalize this and then make -// ... a UDP version of it +import doap.client.messaging; /** - * Stateful management of responses for - * previously made requests. + * UDP-based messaging layer * * Handles the actual sending and receiving * of datagrams and fulfilling of requests */ -public class CoapMessagingLayer : CoapMessagingLayerFR +public class UDPMessaging : CoapMessagingLayer { /** * Reading-loop thread