Skip to content

Commit ab2e48d

Browse files
committed
Make incoming messages API async
1 parent 6e75575 commit ab2e48d

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

libsignal-service-dotnet/SignalServiceMessagePipe.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using System.IO;
1212
using System.Text;
1313
using System.Threading;
14+
using System.Threading.Tasks;
1415

1516
namespace libsignalservice
1617
{
@@ -39,7 +40,7 @@ internal SignalServiceMessagePipe(CancellationToken token, SignalWebSocketConnec
3940
/// Blocks until a message was received, calls the IMessagePipeCallback and confirms the message to the server, unless the pipe's token is cancelled.
4041
/// </summary>
4142
/// <param name="callback"></param>
42-
public void ReadBlocking(IMessagePipeCallback callback)
43+
public async Task ReadBlocking(IMessagePipeCallback callback)
4344
{
4445
Logger.LogTrace("ReadBlocking()");
4546
WebSocketRequestMessage request = Websocket.ReadRequestBlocking();
@@ -51,7 +52,7 @@ public void ReadBlocking(IMessagePipeCallback callback)
5152
try
5253
{
5354
Logger.LogDebug("Calling callback with message {0}", request.Id);
54-
callback.OnMessage(message);
55+
await callback.OnMessage(message);
5556
}
5657
finally
5758
{
@@ -65,7 +66,7 @@ public void ReadBlocking(IMessagePipeCallback callback)
6566
else if (IsPipeEmptyMessage(request))
6667
{
6768
Logger.LogInformation("Calling callback with SignalServiceMessagePipeEmptyMessage");
68-
callback.OnMessage(new SignalServiceMessagePipeEmptyMessage());
69+
await callback.OnMessage(new SignalServiceMessagePipeEmptyMessage());
6970
}
7071
else
7172
{
@@ -205,7 +206,7 @@ public interface IMessagePipeCallback
205206
/// This message is called for every message received via the pipe.
206207
/// </summary>
207208
/// <param name="message">The received message</param>
208-
void OnMessage(SignalServiceMessagePipeMessage message);
209+
Task OnMessage(SignalServiceMessagePipeMessage message);
209210
}
210211
}
211212
}

libsignal-service-dotnet/SignalServiceMessageReceiver.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using System.Security.Cryptography;
1616
using System.Text;
1717
using System.Threading;
18+
using System.Threading.Tasks;
1819
using static libsignalservice.messages.SignalServiceAttachment;
1920
using static libsignalservice.SignalServiceMessagePipe;
2021

@@ -116,7 +117,7 @@ public SignalServiceMessagePipe CreateMessagePipe()
116117
return new SignalServiceMessagePipe(Token, webSocket, CredentialsProvider);
117118
}
118119

119-
public List<SignalServiceEnvelope> RetrieveMessages(IMessagePipeCallback callback)
120+
public async Task<List<SignalServiceEnvelope>> RetrieveMessages(IMessagePipeCallback callback)
120121
{
121122
List<SignalServiceEnvelope> results = new List<SignalServiceEnvelope>();
122123
List<SignalServiceEnvelopeEntity> entities = Socket.GetMessages();
@@ -128,7 +129,7 @@ public List<SignalServiceEnvelope> RetrieveMessages(IMessagePipeCallback callbac
128129
(int)entity.Timestamp, entity.Message,
129130
entity.Content);
130131

131-
callback.OnMessage(envelope);
132+
await callback.OnMessage(envelope);
132133
results.Add(envelope);
133134

134135
Socket.AcknowledgeMessage(entity.Source, entity.Timestamp);

0 commit comments

Comments
 (0)