Loading...
Searching...
No Matches
session.hpp
Go to the documentation of this file.
#ifndef PROTON_SESSION_HPP
#define PROTON_SESSION_HPP
/*
*
* 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.
*
*/
#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./endpoint.hpp"
#include "./receiver.hpp"
#include "./sender.hpp"
#include <string>
struct pn_session_t;
namespace proton {
class
PN_CPP_CLASS_EXTERN session : public internal::object<pn_session_t>, public endpoint {
public:
PN_CPP_EXTERN session(pn_session_t* s) : internal::object<pn_session_t>(s) {}
public:
session() : internal::object<pn_session_t>(0) {}
PN_CPP_EXTERN ~session();
PN_CPP_EXTERN bool uninitialized() const;
PN_CPP_EXTERN bool active() const;
PN_CPP_EXTERN bool closed() const;
PN_CPP_EXTERN class error_condition error() const;
PN_CPP_EXTERN void open();
PN_CPP_EXTERN void open(const session_options &opts);
PN_CPP_EXTERN void close();
PN_CPP_EXTERN void close(const error_condition&);
PN_CPP_EXTERN class container &container() const;
PN_CPP_EXTERN class work_queue& work_queue() const;
PN_CPP_EXTERN class connection connection() const;
PN_CPP_EXTERN sender open_sender(const std::string &addr);
PN_CPP_EXTERN sender open_sender(const std::string &addr, const sender_options &opts);
PN_CPP_EXTERN receiver open_receiver(const std::string &addr);
PN_CPP_EXTERN receiver open_receiver(const std::string &addr, const receiver_options &opts);
PN_CPP_EXTERN size_t incoming_bytes() const;
PN_CPP_EXTERN size_t outgoing_bytes() const;
PN_CPP_EXTERN sender_range senders() const;
PN_CPP_EXTERN receiver_range receivers() const;
friend class internal::factory<session>;
friend class session_iterator;
};
class session_iterator : public internal::iter_base<session, session_iterator> {
public:
explicit session_iterator(session s = 0) : internal::iter_base<session, session_iterator>(s) {}
PN_CPP_EXTERN session_iterator operator++();
};
typedef internal::iter_range<session_iterator> session_range;
} // proton
#endif // PROTON_SESSION_HPP
proton::endpoint
The base class for session, connection, and link.
Definition endpoint.hpp:36
proton::error_condition
Describes an endpoint error state.
Definition error_condition.hpp:39
proton::receiver_options
Options for creating a receiver.
Definition receiver_options.hpp:59
proton::receiver
A channel for receiving messages.
Definition receiver.hpp:41
proton::sender_options
Options for creating a sender.
Definition sender_options.hpp:60
proton::sender
A channel for sending messages.
Definition sender.hpp:40
proton::session_options
Options for creating a session.
Definition session_options.hpp:41
proton::session
A container of senders and receivers.
Definition session.hpp:42
proton::session::error
class error_condition error() const
Get the error condition of the remote endpoint.
proton::session::open_receiver
receiver open_receiver(const std::string &addr, const receiver_options &opts)
Open a receiver for addr.
proton::session::senders
sender_range senders() const
Return the senders on this session.
proton::session::close
void close()
Close the endpoint.
proton::session::receivers
receiver_range receivers() const
Return the receivers on this session.
proton::session::open
void open(const session_options &opts)
Open the session.
proton::session::close
void close(const error_condition &)
Close the endpoint with an error condition.
proton::session::session
session()
Create an empty session.
Definition session.hpp:50
proton::session::work_queue
class work_queue & work_queue() const
Get the work_queue for the session.
proton::session::open
void open()
Open the session.
proton::session::open_receiver
receiver open_receiver(const std::string &addr)
Open a receiver for addr.
proton::session::uninitialized
bool uninitialized() const
True if the local end is uninitialized.
proton::session::open_sender
sender open_sender(const std::string &addr, const sender_options &opts)
Open a sender for addr.
proton::session::container
class container & container() const
Get the container for this session.
proton::session::active
bool active() const
True if the local end is active.
proton::session::closed
bool closed() const
True if the local and remote ends are closed.
proton::session::open_sender
sender open_sender(const std::string &addr)
Open a sender for addr.
proton::session::outgoing_bytes
size_t outgoing_bytes() const
The number of outgoing bytes currently buffered.
proton::session::incoming_bytes
size_t incoming_bytes() const
The number of incoming bytes currently buffered.
proton::session::connection
class connection connection() const
Get the connection this session belongs to.
endpoint.hpp
The base class for session, connection, and link.
fwd.hpp
Forward declarations.
proton
The main Proton namespace.
Definition annotation_key.hpp:33
receiver.hpp
A channel for receiving messages.
sender.hpp
A channel for sending messages.