Former-commit-id:9f19e3f712
[formerly9f19e3f712
[formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]] Former-commit-id:06a8b51d6d
Former-commit-id:3360eb6c5f
92 lines
3.3 KiB
C#
92 lines
3.3 KiB
C#
/*
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
*/
|
|
using System;
|
|
|
|
namespace Apache.Qpid.Messaging
|
|
{
|
|
/// <summary>
|
|
/// Defines an object capable of publishing messages
|
|
/// to an AMQP broker.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// A publisher can be created using either
|
|
/// <see cref="IChannel.CreatePublisher"/> or
|
|
/// using the builder pattern (preferred) with
|
|
/// <see cref="IChannel.CreatePublisherBuilder"/>
|
|
/// </remarks>
|
|
public interface IMessagePublisher : IDisposable, ICloseable
|
|
{
|
|
/// <summary>
|
|
/// Default delivery mode to use with this publisher
|
|
/// </summary>
|
|
DeliveryMode DeliveryMode { get; set; }
|
|
/// <summary>
|
|
/// Name of exchange messages are published to
|
|
/// </summary>
|
|
string ExchangeName { get; }
|
|
/// <summary>
|
|
/// Routing key used when publishing messages
|
|
/// </summary>
|
|
string RoutingKey { get; }
|
|
/// <summary>
|
|
/// If true, a message ID will not be generated by the publisher
|
|
/// when sending the message
|
|
/// </summary>
|
|
bool DisableMessageID { get; set; }
|
|
/// <summary>
|
|
/// If true, no timestamp will be added to the message
|
|
/// when publishing it
|
|
/// </summary>
|
|
bool DisableMessageTimestamp { get; set; }
|
|
/// <summary>
|
|
/// Default priority used when publishing messages
|
|
/// </summary>
|
|
int Priority { get; set; }
|
|
/// <summary>
|
|
/// Default time to live used when publishing messages
|
|
/// </summary>
|
|
long TimeToLive { get; set; }
|
|
/// <summary>
|
|
/// Set the default MIME type for messages produced by this producer.
|
|
/// This reduces the overhead of each message.
|
|
/// </summary>
|
|
string MimeType { get; set; }
|
|
/// <summary>
|
|
/// Set the default encoding for messages produced by this producer.
|
|
/// This reduces the overhead of each message.
|
|
/// </summary>
|
|
string Encoding { get; set; }
|
|
|
|
/// <summary>
|
|
/// Publish a message, using any default values configured
|
|
/// </summary>
|
|
/// <param name="msg">Message to publish</param>
|
|
void Send(IMessage msg);
|
|
/// <summary>
|
|
/// Publish a message with the specified options
|
|
/// </summary>
|
|
/// <param name="msg">Message to publish</param>
|
|
/// <param name="deliveryMode">Delivery mode to use</param>
|
|
/// <param name="priority">Priority of the message</param>
|
|
/// <param name="timeToLive">Time to live of the message</param>
|
|
void Send(IMessage msg, DeliveryMode deliveryMode, int priority, long timeToLive);
|
|
}
|
|
}
|