RESTinio

tcp_connection_ctx_base.hpp
Go to the documentation of this file.
1/*
2 restinio
3*/
4
9#pragma once
10
11#include <memory>
12
13#include <restinio/connection_state_listener.hpp>
14
15 namespace restinio
16{
17
18//
19// tcp_connection_ctx_base_t
20//
21
23
27 class tcp_connection_ctx_base_t
28 : public std::enable_shared_from_this< tcp_connection_ctx_base_t >
29{
30 public:
31 tcp_connection_ctx_base_t(connection_id_t id )
32 : m_connection_id{ id }
33 {}
34
35 virtual ~tcp_connection_ctx_base_t() = default;
36
38 connection_id_t connection_id() const noexcept { return m_connection_id; }
39
41 virtual void
42 check_timeout(
44 std::shared_ptr< tcp_connection_ctx_base_t > & self ) = 0;
45
46 protected:
47
49 template < typename Derived >
50 std::shared_ptr< Derived >
51 shared_from_concrete()
52 {
53 return std::static_pointer_cast< Derived >( shared_from_this() );
54 }
55
56 private:
58 const connection_id_t m_connection_id;
59};
60
62 using tcp_connection_ctx_handle_t = std::shared_ptr< tcp_connection_ctx_base_t >;
63
65 using tcp_connection_ctx_weak_handle_t = std::weak_ptr< tcp_connection_ctx_base_t >;
66
67} /* namespace restinio */
68
restinio::tcp_connection_ctx_base_t
TCP connection base.
Definition: tcp_connection_ctx_base.hpp:29
restinio::tcp_connection_ctx_base_t::check_timeout
virtual void check_timeout(std::shared_ptr< tcp_connection_ctx_base_t > &self)=0
Check timeouts for all activities.
restinio::tcp_connection_ctx_base_t::m_connection_id
const connection_id_t m_connection_id
Id of a connection.
Definition: tcp_connection_ctx_base.hpp:58
restinio::tcp_connection_ctx_base_t::tcp_connection_ctx_base_t
tcp_connection_ctx_base_t(connection_id_t id)
Definition: tcp_connection_ctx_base.hpp:31
restinio::tcp_connection_ctx_base_t::connection_id
connection_id_t connection_id() const noexcept
Get connection id.
Definition: tcp_connection_ctx_base.hpp:38
restinio::tcp_connection_ctx_base_t::shared_from_concrete
std::shared_ptr< Derived > shared_from_concrete()
Cast self to derived class.
Definition: tcp_connection_ctx_base.hpp:51
restinio::tcp_connection_ctx_base_t::~tcp_connection_ctx_base_t
virtual ~tcp_connection_ctx_base_t()=default
connection_state_listener.hpp
Stuff related to connection state listeners.
restinio
Definition: asio_include.hpp:21
restinio::tcp_connection_ctx_handle_t
std::shared_ptr< tcp_connection_ctx_base_t > tcp_connection_ctx_handle_t
Alias for http connection handle.
Definition: tcp_connection_ctx_base.hpp:62
restinio::tcp_connection_ctx_weak_handle_t
std::weak_ptr< tcp_connection_ctx_base_t > tcp_connection_ctx_weak_handle_t
Alias for http connection weak handle.
Definition: tcp_connection_ctx_base.hpp:65
restinio::connection_id_t
std::uint64_t connection_id_t
Type for ID of connection.
Definition: common_types.hpp:174
const
#define const
Definition: zconf.h:230