/// <summary> /// Sends a GetChannelMetadataResponse message to a customer. /// </summary> /// <param name="correlatedHeader">The message header that the messages to send are correlated with.</param> /// <param name="metadata">The metadata.</param> /// <param name="isFinalPart">Whether or not this is the final part of a multi-part message.</param> /// <param name="extension">The message header extension.</param> /// <returns>The sent message on success; <c>null</c> otherwise.</returns> public virtual EtpMessage <GetChannelMetadataResponse> GetChannelMetadataResponse(IMessageHeader correlatedHeader, IDictionary <string, ChannelMetadataRecord> metadata, bool isFinalPart = true, IMessageHeaderExtension extension = null) { var body = new GetChannelMetadataResponse { Metadata = metadata ?? new Dictionary <string, ChannelMetadataRecord>(), }; return(SendResponse(body, correlatedHeader, extension: extension, isMultiPart: true, isFinalPart: isFinalPart)); }
/// <summary> /// Sends a GetChannelMetadataResponse message to a consumer. /// </summary> /// <param name="request">The request.</param> /// <param name="channelMetadataRecords">The list of <see cref="ChannelMetadataRecord" /> objects.</param> /// <param name="messageFlag">The message flag.</param> /// <returns>The message identifier.</returns> public virtual long GetChannelMetadataResponse(IMessageHeader request, IList <ChannelMetadataRecord> channelMetadataRecords, MessageFlags messageFlag = MessageFlags.FinalPart) { var header = CreateMessageHeader(Protocols.ChannelSubscribe, MessageTypes.ChannelSubscribe.GetChannelMetadataResponse, request.MessageId, messageFlag); var channelMetadata = new GetChannelMetadataResponse { Metadata = channelMetadataRecords }; return(Session.SendMessage(header, channelMetadata)); }
/// <summary> /// Handles the GetChannelMetadataResponse message from a producer. /// </summary> /// <param name="header">The message header.</param> /// <param name="getChannelMetadataResponse">The GetChannelMetadataResponse message.</param> protected virtual void HandleGetChannelMetadataResponse(IMessageHeader header, GetChannelMetadataResponse getChannelMetadataResponse) { foreach (var channel in getChannelMetadataResponse.Metadata) { ChannelMetadataRecords.Add(channel); } Notify(OnGetChannelMetadataResponse, header, getChannelMetadataResponse); }