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);