/// <summary> /// Sends a ChannelData message to a consumer. /// </summary> /// <param name="correlatedHeader">The message header that the message to send is correlated with.</param> /// <param name="dataItems">The list of <see cref="DataItem" /> objects.</param> /// <param name="isFinalPart">Whether or not this is the final part of a multi-part message.</param> /// <returns>The sent message on success; <c>null</c> otherwise.</returns> public virtual EtpMessage <ChannelData> ChannelRangeRequestChannelData(IMessageHeader correlatedHeader, IList <DataItem> data, bool isFinalPart = true) { var body = new ChannelData() { Data = data ?? new List <DataItem>(), }; return(SendResponse(body, correlatedHeader, isMultiPart: true, isFinalPart: isFinalPart)); }
/// <summary> /// Sends a streaming ChannelData message to a consumer. /// </summary> /// <param name="data">The list of <see cref="DataItem" /> objects.</param> /// <returns>The sent message on success; <c>null</c> otherwise.</returns> public virtual EtpMessage <ChannelData> StreamingChannelData(IList <DataItem> data) { var body = new ChannelData() { Data = data ?? new List <DataItem>(), }; return(SendData(body, isMultiPart: true)); }
/// <summary> /// Sends a ChannelData message to a consumer. /// </summary> /// <param name="request">The request.</param> /// <param name="dataItems">The list of <see cref="DataItem" /> objects.</param> /// <param name="messageFlag">The message flag.</param> /// <returns>The message identifier.</returns> public virtual long ChannelData(IMessageHeader request, IList <DataItem> dataItems, MessageFlags messageFlag = MessageFlags.MultiPart) { var correlationId = 0L; // NOTE: CorrelationId is only specified when responding to a ChannelRangeRequest message if (request != null && request.MessageType == (int)MessageTypes.ChannelStreaming.ChannelRangeRequest) { correlationId = request.MessageId; } var header = CreateMessageHeader(Protocols.ChannelStreaming, MessageTypes.ChannelStreaming.ChannelData, correlationId, messageFlag); var channelData = new ChannelData() { Data = dataItems }; return(Session.SendMessage(header, channelData)); }
/// <summary> /// Handles the ChannelData message from a producer. /// </summary> /// <param name="header">The message header.</param> /// <param name="channelData">The ChannelData message.</param> protected virtual void HandleChannelData(IMessageHeader header, ChannelData channelData) { Notify(OnChannelData, header, channelData); }