/// <summary> /// Sends a ChannelDescribe message to a producer with the specified URIs. /// </summary> /// <param name="uris">The list of URIs.</param> /// <returns>The sent message on success; <c>null</c> otherwise.</returns> public virtual EtpMessage <ChannelDescribe> ChannelDescribe(IList <string> uris) { var body = new ChannelDescribe() { Uris = uris ?? new List <string>() }; return(SendRequest(body, isLongLived: true)); }
/// <summary> /// Sends a ChannelDescribe message to a producer with the specified URIs. /// </summary> /// <param name="uris">The list of URIs.</param> /// <returns>The message identifier.</returns> public virtual long ChannelDescribe(IList <string> uris) { var header = CreateMessageHeader(Protocols.ChannelStreaming, MessageTypes.ChannelStreaming.ChannelDescribe); var channelDescribe = new ChannelDescribe() { Uris = uris }; return(Session.SendMessage(header, channelDescribe)); }
/// <summary> /// Handles the ChannelDescribe message from a consumer. /// </summary> /// <param name="header">The message header.</param> /// <param name="channelDescribe">The ChannelDescribe message.</param> protected virtual void HandleChannelDescribe(IMessageHeader header, ChannelDescribe channelDescribe) { var args = Notify(OnChannelDescribe, header, channelDescribe, new List <ChannelMetadataRecord>()); HandleChannelDescribe(args); if (!args.Cancel) { ChannelMetadata(header, args.Context); } }
/// <summary> /// Handles the Start message from a consumer. /// </summary> /// <param name="message">The Start message.</param> protected virtual void HandleStart(EtpMessage <Start> message) { MaxDataItems = message.Body.MaxDataItems; MaxMessageRate = message.Body.MaxMessageRate; if (Capabilities.SimpleStreamer ?? false) // Treat the start message as the subscription for simple streamers { var describe = new ChannelDescribe { Uris = new List <string> { EtpUri.RootUri11 } }; TryRegisterSubscriptions(message, describe.GetSubscriptions(Session.SessionId).ToMap(), nameof(describe.Uris)); } HandleRequestMessage(message, OnStart, HandleStart); }