12#ifndef OPENVPN_COMMON_MSGWIN_H
13#define OPENVPN_COMMON_MSGWIN_H
29template <
typename M,
typename id_t>
46 void init(
const id_t starting_head_id,
const id_t
span)
75 throw message_window_ref_by_id();
96 return (!
q_.empty() &&
q_.front().defined());
130 throw message_window_rm_head();
148 const size_t needed_index =
id -
head_id_;
149 while (
q_.size() <= needed_index)
157 while (!
q_.empty() &&
q_.front().erased())
bool in_window(const id_t id) const
OPENVPN_SIMPLE_EXCEPTION(message_window_rm_head)
bool pre_window(const id_t id) const
void rm_by_id(const id_t id)
M & ref_by_id(const id_t id)
MessageWindow(const id_t starting_head_id, const id_t span)
bool head_defined() const
void init(const id_t starting_head_id, const id_t span)
OPENVPN_SIMPLE_EXCEPTION(message_window_ref_by_id)
Support deferred server-side state creation when client connects.