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"
10namespace Azure {
namespace Core {
namespace Amqp {
namespace Models {
namespace _detail {
11 class MessageTargetImpl;
14namespace Azure {
namespace Core {
namespace Amqp {
namespace Models {
namespace _internal {
16 struct MessageTargetOptions final
19 Nullable<TerminusDurability> TerminusDurabilityValue;
20 Nullable<TerminusExpiryPolicy> TerminusExpiryPolicyValue;
21 Nullable<std::chrono::system_clock::time_point> Timeout;
22 Nullable<bool> Dynamic;
23 AmqpMap DynamicNodeProperties;
24 AmqpArray Capabilities;
37 class MessageTarget final {
46 MessageTarget(MessageTarget
const& that);
49 MessageTarget& operator=(MessageTarget
const& that);
52 MessageTarget(MessageTarget&&) noexcept;
55 MessageTarget& operator=(MessageTarget&&) noexcept;
66 MessageTarget(std::
string const& address);
72 MessageTarget(
char const* address);
78 MessageTarget(MessageTargetOptions const& options);
86 MessageTarget(Models::AmqpValue const& value);
93 AmqpValue AsAmqpValue() const;
104 AmqpValue GetAddress() const;
113 TerminusDurability GetTerminusDurability() const;
122 TerminusExpiryPolicy GetExpiryPolicy() const;
131 std::chrono::system_clock::time_point GetTimeout() const;
140 bool GetDynamic() const;
153 AmqpMap GetDynamicNodeProperties() const;
162 AmqpArray GetCapabilities() const;
165 std::unique_ptr<_detail::MessageTargetImpl> m_impl;
168 friend std::ostream& operator<<(std::ostream&, MessageTarget const&);