private unsafe void _StreamTriplesAsyncHandler(AsynReqRspArgs args) { using (var rsp = new ErrorCodeResponseWriter(asyncRspHeaderLength: TrinityProtocol.AsyncWithRspAdditionalHeaderLength)) { Exception exception = null; var req = new TripleStreamReader(args.Buffer, args.Offset + TrinityProtocol.AsyncWithRspAdditionalHeaderLength); try { StreamTriplesAsyncHandler(req, rsp); } catch (Exception ex) { exception = ex; } int token = *(int *)(args.Buffer + args.Offset); int from = *(int *)(args.Buffer + args.Offset + sizeof(int)); _StreamTriplesAsync_CheckError(exception, token, from); *(int *)(rsp.buffer) = TrinityProtocol.TrinityMsgHeader + TrinityProtocol.AsyncWithRspAdditionalHeaderLength + rsp.Length; *(TrinityMessageType *)(rsp.buffer + TrinityProtocol.MsgTypeOffset) = TrinityMessageType.ASYNC_WITH_RSP; *(ushort *)(rsp.buffer + TrinityProtocol.MsgIdOffset) = (ushort)global::Trinity.Client.TestProtocols.TSL.CommunicationModule.TripleServer.AsynReqRspMessageType.StreamTriplesAsync__Response; *(int *)(rsp.m_ptr - TrinityProtocol.AsyncWithRspAdditionalHeaderLength) = token; *(int *)(rsp.m_ptr - TrinityProtocol.AsyncWithRspAdditionalHeaderLength + sizeof(int)) = 0; this.SendMessage(m_memorycloud[from], rsp.buffer, rsp.Length + TrinityProtocol.MsgHeader + TrinityProtocol.AsyncWithRspAdditionalHeaderLength); } }
public abstract void StreamTriplesAsyncHandler(TripleStreamReader request, ErrorCodeResponseWriter response);
public abstract void PostTriplesToServerHandler(TripleStreamReader request, ErrorCodeResponseWriter response);