Qpid Proton C++ 0.33.0
terminus.hpp
Go to the documentation of this file.
1#ifndef PROTON_TERMINUS_HPP
2#define PROTON_TERMINUS_HPP
3
4/*
5 *
6 * Licensed to the Apache Software Foundation (ASF) under one
7 * or more contributor license agreements. See the NOTICE file
8 * distributed with this work for additional information
9 * regarding copyright ownership. The ASF licenses this file
10 * to you under the Apache License, Version 2.0 (the
11 * "License"); you may not use this file except in compliance
12 * with the License. You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing,
17 * software distributed under the License is distributed on an
18 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19 * KIND, either express or implied. See the License for the
20 * specific language governing permissions and limitations
21 * under the License.
22 *
23 */
24
25#include "./types_fwd.hpp"
26#include "./internal/export.hpp"
27
28#include <proton/terminus.h>
29
30#include <string>
31#include <vector>
32
35
36struct pn_link_t;
37struct pn_terminus_t;
38
39namespace proton {
40
41namespace internal {
42template <class T> class factory;
43}
44
51class terminus {
53 terminus(pn_terminus_t* t);
55
56 public:
57 terminus() : object_(0), parent_(0) {}
58
62 NONDURABLE = PN_NONDURABLE,
64 CONFIGURATION = PN_CONFIGURATION,
66 UNSETTLED_STATE = PN_DELIVERIES
67 };
68
72 LINK_CLOSE = PN_EXPIRE_WITH_LINK,
74 SESSION_CLOSE = PN_EXPIRE_WITH_SESSION,
76 CONNECTION_CLOSE = PN_EXPIRE_WITH_CONNECTION,
78 NEVER = PN_EXPIRE_NEVER
79 };
80
81 // XXX This should have address?
82
84 PN_CPP_EXTERN enum expiry_policy expiry_policy() const;
85
88 PN_CPP_EXTERN duration timeout() const;
89
91 PN_CPP_EXTERN enum durability_mode durability_mode();
92
94 PN_CPP_EXTERN bool dynamic() const;
95
97 PN_CPP_EXTERN bool anonymous() const;
98
101 PN_CPP_EXTERN value node_properties() const;
102
104 PN_CPP_EXTERN std::vector<symbol> capabilities() const;
105
106 protected:
107 pn_terminus_t *pn_object() const { return object_; }
108 private:
109 pn_terminus_t* object_;
110 pn_link_t* parent_;
111
113 friend class internal::factory<terminus>;
114 friend class source;
115 friend class target;
117};
118
119} // proton
120
121#endif // PROTON_TERMINUS_HPP
A span of time in milliseconds.
Definition: duration.hpp:39
A point of origin for messages.
Definition: source.hpp:44
A destination for messages.
Definition: target.hpp:45
One end of a link, either a source or a target.
Definition: terminus.hpp:51
duration timeout() const
The period after which the source is discarded on expiry.
expiry_policy
When expiration of the source or target begins.
Definition: terminus.hpp:70
@ NEVER
The terminus never expires.
Definition: terminus.hpp:78
@ LINK_CLOSE
When the link is closed.
Definition: terminus.hpp:72
@ SESSION_CLOSE
When the containing session is closed.
Definition: terminus.hpp:74
@ CONNECTION_CLOSE
When the containing connection is closed.
Definition: terminus.hpp:76
durability_mode
The persistence mode of the source or target.
Definition: terminus.hpp:60
@ CONFIGURATION
Only configuration is persisted.
Definition: terminus.hpp:64
@ UNSETTLED_STATE
Configuration and unsettled state are persisted.
Definition: terminus.hpp:66
@ NONDURABLE
No persistence.
Definition: terminus.hpp:62
bool anonymous() const
True if the remote node is an anonymous-relay.
value node_properties() const
Obtain a reference to the AMQP dynamic node properties for the terminus.
std::vector< symbol > capabilities() const
Extension capabilities that are supported/requested.
bool dynamic() const
True if the remote node is created dynamically.
enum durability_mode durability_mode()
Get the durability flag.
enum expiry_policy expiry_policy() const
Get the policy for when expiration begins.
A holder for any AMQP value, simple or complex.
Definition: value.hpp:57
The main Proton namespace.
Definition: annotation_key.hpp:33
Forward declarations for Proton types used to represent AMQP types.