Qpid Proton C++ API 0.39.0
 
Loading...
Searching...
No Matches
session.hpp
Go to the documentation of this file.
1#ifndef PROTON_SESSION_HPP
2#define PROTON_SESSION_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 "./fwd.hpp"
26#include "./internal/export.hpp"
27#include "./endpoint.hpp"
28#include "./receiver.hpp"
29#include "./sender.hpp"
30
31#include <string>
32
35
36struct pn_session_t;
37
38namespace proton {
39
41class
42PN_CPP_CLASS_EXTERN session : public internal::object<pn_session_t>, public endpoint {
43 public:
45 PN_CPP_EXTERN session(pn_session_t* s) : internal::object<pn_session_t>(s) {}
47
48 public:
50 session() : internal::object<pn_session_t>(0) {}
51
52 PN_CPP_EXTERN ~session();
53
54 PN_CPP_EXTERN bool uninitialized() const;
55 PN_CPP_EXTERN bool active() const;
56 PN_CPP_EXTERN bool closed() const;
57
58 PN_CPP_EXTERN class error_condition error() const;
59
61 PN_CPP_EXTERN void open();
62
64 PN_CPP_EXTERN void open(const session_options &opts);
65
66 PN_CPP_EXTERN void close();
67 PN_CPP_EXTERN void close(const error_condition&);
68
70 PN_CPP_EXTERN class container &container() const;
71
73 PN_CPP_EXTERN class work_queue& work_queue() const;
74
76 PN_CPP_EXTERN class connection connection() const;
77
79 PN_CPP_EXTERN sender open_sender(const std::string &addr);
80
82 PN_CPP_EXTERN sender open_sender(const std::string &addr, const sender_options &opts);
83
85 PN_CPP_EXTERN receiver open_receiver(const std::string &addr);
86
88 PN_CPP_EXTERN receiver open_receiver(const std::string &addr, const receiver_options &opts);
89
91 PN_CPP_EXTERN size_t incoming_bytes() const;
92
94 PN_CPP_EXTERN size_t outgoing_bytes() const;
95
97 PN_CPP_EXTERN sender_range senders() const;
98
100 PN_CPP_EXTERN receiver_range receivers() const;
101
103 PN_CPP_EXTERN void user_data(void* user_data) const;
104
106 PN_CPP_EXTERN void* user_data() const;
107
109 friend class internal::factory<session>;
110 friend class session_iterator;
112};
113
115
117class session_iterator : public internal::iter_base<session, session_iterator> {
118 public:
119 explicit session_iterator(session s = 0) : internal::iter_base<session, session_iterator>(s) {}
120
122 PN_CPP_EXTERN session_iterator operator++();
123};
124
126typedef internal::iter_range<session_iterator> session_range;
127
129
130} // proton
131
132#endif // PROTON_SESSION_HPP
A connection to a remote AMQP peer.
Definition: connection.hpp:47
A top-level container of connections, sessions, and links.
Definition: container.hpp:50
The base class for session, connection, and link.
Definition: endpoint.hpp:36
Describes an endpoint error state.
Definition: error_condition.hpp:39
Options for creating a receiver.
Definition: receiver_options.hpp:59
A channel for receiving messages.
Definition: receiver.hpp:41
Options for creating a sender.
Definition: sender_options.hpp:60
A channel for sending messages.
Definition: sender.hpp:40
Options for creating a session.
Definition: session_options.hpp:41
A container of senders and receivers.
Definition: session.hpp:42
void * user_data() const
Get user data from this session.
receiver open_receiver(const std::string &addr, const receiver_options &opts)
Open a receiver for addr.
sender_range senders() const
Return the senders on this session.
void close()
Close the endpoint.
receiver_range receivers() const
Return the receivers on this session.
void open(const session_options &opts)
Open the session.
void close(const error_condition &)
Close the endpoint with an error condition.
session()
Create an empty session.
Definition: session.hpp:50
class work_queue & work_queue() const
Get the work_queue for the session.
void open()
Open the session.
receiver open_receiver(const std::string &addr)
Open a receiver for addr.
void user_data(void *user_data) const
Set user data on this session.
bool uninitialized() const
True if the local end is uninitialized.
sender open_sender(const std::string &addr, const sender_options &opts)
Open a sender for addr.
class container & container() const
Get the container for this session.
bool active() const
True if the local end is active.
bool closed() const
True if the local and remote ends are closed.
sender open_sender(const std::string &addr)
Open a sender for addr.
size_t outgoing_bytes() const
The number of outgoing bytes currently buffered.
size_t incoming_bytes() const
The number of incoming bytes currently buffered.
Unsettled API - A context for thread-safe execution of work.
Definition: work_queue.hpp:327
The base class for session, connection, and link.
Forward declarations.
The main Proton namespace.
Definition: annotation_key.hpp:33
A channel for receiving messages.
A channel for sending messages.
The base Proton error.
Definition: error.hpp:40