public static Span <byte> nng_msg_body_span(nng_msg message) { unsafe { return(new Span <byte>(nng_msg_body(message), (int)nng_msg_len(message))); } }
internal void callback(IntPtr arg) { var res = 0; switch (State) { case AsyncState.Init: State = AsyncState.Recv; nng_recv_aio(Socket.NngSocket, aioHandle); break; case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { State = AsyncState.Init; asyncMessage.Source.Tcs.TrySetNngError(res); return; } State = AsyncState.Init; nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); asyncMessage.Source.Tcs.SetResult(message); break; default: asyncMessage.Source.Tcs.SetException(new Exception(State.ToString())); break; } }
protected override void AioCallback(IntPtr argument) { var res = Unit.Ok; switch (State) { case AsyncState.Recv: res = Aio.GetResult(); if (res.IsErr()) { State = AsyncState.Init; tcs.TrySetNngError(res.Err()); return; } State = AsyncState.Init; nng_msg msg = Aio.GetMsg(); var message = Factory.CreateMessage(msg); tcs.TrySetResult(NngResult <T> .Ok(message)); break; case AsyncState.Init: default: tcs.TrySetException(new Exception(State.ToString())); break; } }
protected override void AioCallback(IntPtr argument) { var res = 0; switch (State) { case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { State = AsyncState.Init; tcs.TrySetNngError(res); return; } State = AsyncState.Init; nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); tcs.TrySetResult(NngResult <T> .Ok(message)); break; case AsyncState.Init: default: tcs.TrySetException(new Exception(State.ToString())); break; } }
public static Int32 nng_msg_append(nng_msg message, ReadOnlySpan <byte> data) { unsafe { fixed(byte *ptr = &data[0]) { return(nng_msg_append(message, ptr, (UIntPtr)data.Length)); } } }
internal void callback(IntPtr arg) { lock (sync) { var res = 0; switch (State) { case AsyncState.Init: init(); break; case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { asyncMessage.requestTcs.TrySetNngError(res); State = AsyncState.Recv; return; } State = AsyncState.Wait; nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); asyncMessage.requestTcs.SetResult(message); break; case AsyncState.Wait: nng_aio_set_msg(aioHandle, Factory.Borrow(asyncMessage.response)); State = AsyncState.Send; nng_ctx_send(ctxHandle, aioHandle); break; case AsyncState.Send: res = nng_aio_result(aioHandle); if (res != 0) { Factory.Destroy(ref asyncMessage.response); asyncMessage.replyTcs.TrySetNngError(res); } var currentReq = asyncMessage; init(); currentReq.replyTcs.SetResult(true); break; } } }
protected override void AioCallback(IntPtr argument) { var res = 0; switch (State) { case AsyncState.Send: res = nng_aio_result(aioHandle); if (res != 0) { HandleFailedSend(); State = AsyncState.Init; sendTcs.TrySetNngError(res); return; } State = AsyncState.Init; sendTcs.TrySetNngResult(); break; case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { State = AsyncState.Init; receiveTcs.TrySetNngError(res); return; } State = AsyncState.Init; nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); receiveTcs.TrySetNngResult(message); break; case AsyncState.Init: default: Console.Error.WriteLine("Survey::AioCallback: " + State); State = AsyncState.Init; break; } }
internal void callback(IntPtr arg) { var res = 0; switch (State) { case AsyncState.Init: break; case AsyncState.Send: res = nng_aio_result(aioHandle); if (res != 0) { State = AsyncState.Init; Factory.Destroy(ref sendMessage); sendTcs.TrySetNngError(res); return; } State = AsyncState.Init; sendTcs.SetResult(true); break; case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { State = AsyncState.Init; receiveTcs.Tcs.TrySetNngError(res); return; } State = AsyncState.Init; nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); receiveTcs.Tcs.SetResult(message); break; default: break; } }
internal void callback(IntPtr arg) { var res = 0; switch (State) { case AsyncState.Init: State = AsyncState.Send; nng_aio_set_msg(aioHandle, Factory.Borrow(asyncMessage.message)); nng_ctx_send(ctxHandle, aioHandle); break; case AsyncState.Send: res = nng_aio_result(aioHandle); if (res != 0) { Factory.Destroy(ref asyncMessage.message); asyncMessage.tcs.TrySetNngError(res); State = AsyncState.Init; return; } State = AsyncState.Recv; nng_ctx_recv(ctxHandle, aioHandle); break; case AsyncState.Recv: res = nng_aio_result(aioHandle); if (res != 0) { asyncMessage.tcs.TrySetNngError(res); State = AsyncState.Init; return; } nng_msg msg = nng_aio_get_msg(aioHandle); var message = Factory.CreateMessage(msg); asyncMessage.tcs.SetResult(message); State = AsyncState.Init; break; } }
protected override void AioCallback(IntPtr argument) { var res = Unit.Ok; switch (State) { case AsyncState.Init: init(); break; case AsyncState.Recv: res = Aio.GetResult(); if (res.IsErr()) { asyncMessage.requestTcs.TrySetNngError(res.Err()); State = AsyncState.Recv; return; } State = AsyncState.Wait; nng_msg msg = Aio.GetMsg(); var message = Factory.CreateMessage(msg); asyncMessage.requestTcs.SetNngResult(message); break; case AsyncState.Wait: break; case AsyncState.Send: res = Aio.GetResult(); if (res.IsErr()) { HandleFailedSend(); asyncMessage.replyTcs.TrySetNngError(res.Err()); } var currentReq = asyncMessage; init(); currentReq.replyTcs.SetNngResult(); break; } }
protected override void AioCallback(IntPtr argument) { var res = Unit.Ok; switch (State) { case AsyncState.Send: res = Aio.GetResult(); if (res.IsErr()) { HandleFailedSend(); State = AsyncState.Init; sendTcs.TrySetNngError(res.Err()); return; } State = AsyncState.Init; sendTcs.TrySetNngResult(); break; case AsyncState.Recv: res = Aio.GetResult(); if (res.IsErr()) { State = AsyncState.Init; receiveTcs.TrySetNngError(res.Err()); return; } State = AsyncState.Init; nng_msg msg = Aio.GetMsg(); var message = Factory.CreateMessage(msg); receiveTcs.TrySetNngResult(message); break; case AsyncState.Init: default: Console.Error.WriteLine("SendReceive::AioCallback: " + State); State = AsyncState.Init; break; } }
public NngMsg(nng_msg message) { this.message = message; _header = new NngMsgHeader(message); }
public static extern Int32 nng_msg_header_trim_u32(nng_msg message, out UInt32 data);
public static extern Int32 nng_msg_header_insert_u32(nng_msg message, UInt32 data);
public static extern Int32 nng_msg_header_append_u32(nng_msg message, UInt32 data);
public static extern Int32 nng_msg_header_chop(nng_msg message, UIntPtr size);
public static int nng_msg_alloc(out nng_msg message, uint size = 0) { return(nng_msg_alloc(out message, (UIntPtr)size)); }
public static extern Int32 nng_msg_trim(nng_msg message, UIntPtr size);
public static extern unsafe Int32 nng_msg_header_append(nng_msg message, byte *data, UIntPtr size);
public static extern nng_pipe nng_msg_get_pipe(nng_msg message);
public static extern UIntPtr nng_msg_len(nng_msg message);
public static extern unsafe void *nng_msg_header(nng_msg message);
public static extern int nng_msg_realloc(ref nng_msg message, UIntPtr size);
public static extern void nng_msg_free(nng_msg message);
public NngMessageHeader(nng_msg message) { this.message = message; }
static extern Int32 nng_msg_header_insert(nng_msg message, byte[] data, UIntPtr size);
public Message(nng_msg message) { this.message = message; _header = new NngMessageHeader(message); }
public static Int32 nng_msg_header_insert(nng_msg message, byte[] data) { return(nng_msg_header_insert(message, data, (UIntPtr)data.Length)); }
public static extern unsafe void *nng_msg_body(nng_msg message);
public static extern int nng_msg_alloc(out nng_msg message, UIntPtr size);