6#include "azure/core/amqp/models/amqp_header.hpp"
7#include "azure/core/amqp/models/amqp_properties.hpp"
8#include "azure/core/amqp/models/amqp_value.hpp"
13struct SOURCE_INSTANCE_TAG;
15namespace Azure {
namespace Core {
namespace Amqp {
namespace Models {
namespace _detail {
16 class MessageSourceImpl;
19namespace Azure {
namespace Core {
namespace Amqp {
namespace Models {
namespace _internal {
21 struct MessageSourceOptions final
24 Nullable<TerminusDurability> SourceTerminusDurability;
25 Nullable<TerminusExpiryPolicy> SourceTerminusExpiryPolicy;
26 Nullable<std::chrono::system_clock::time_point> Timeout;
27 Nullable<bool> Dynamic;
28 AmqpMap DynamicNodeProperties;
29 Nullable<std::string> DistributionMode;
31 AmqpValue DefaultOutcome;
33 AmqpArray Capabilities;
47 class MessageSource final {
56 MessageSource(AmqpValue
const& value);
59 MessageSource(MessageSource
const& that);
63 MessageSource& operator=(MessageSource
const& that);
66 MessageSource(MessageSource&& other)
noexcept;
69 MessageSource& operator=(MessageSource&& other)
noexcept;
76 MessageSource(MessageSourceOptions
const& options);
87 MessageSource(std::string
const& address);
93 MessageSource(
char const* address);
100 AmqpValue AsAmqpValue()
const;
110 AmqpValue GetAddress()
const;
120 TerminusDurability GetTerminusDurability()
const;
130 TerminusExpiryPolicy GetExpiryPolicy()
const;
142 std::chrono::system_clock::time_point GetTimeout()
const;
152 bool GetDynamic()
const;
163 AmqpMap GetDynamicNodeProperties()
const;
173 std::string GetDistributionMode()
const;
183 AmqpMap GetFilter()
const;
194 AmqpValue GetDefaultOutcome()
const;
205 AmqpArray GetOutcomes()
const;
216 AmqpArray GetCapabilities()
const;
219 std::unique_ptr<_detail::MessageSourceImpl> m_impl;
221 friend std::ostream& operator<<(std::ostream&, MessageSource
const&);