Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
io
Hook.hpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2021 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#ifndef TOOLBOX_IO_HOOK_HPP
18
#define TOOLBOX_IO_HOOK_HPP
19
20
#include <
toolbox/sys/Time.hpp
>
21
#include <
toolbox/util/Slot.hpp
>
22
23
#include <boost/intrusive/list.hpp>
24
25
namespace
toolbox
{
26
inline
namespace
io {
27
28
struct
Hook
29
: boost::intrusive::list_base_hook<boost::intrusive::link_mode<boost::intrusive::auto_unlink>> {
30
using
Slot
=
BasicSlot<CyclTime>
;
31
explicit
Hook
(
Slot
slot
)
noexcept
32
:
slot
{
slot
}
33
{
34
}
35
Hook
() =
default
;
36
Slot
slot
;
37
};
38
39
using
HookList
= boost::intrusive::list<Hook, boost::intrusive::constant_time_size<false>>;
40
41
TOOLBOX_API
void
dispatch
(
CyclTime
now,
const
HookList
&
l
)
noexcept
;
42
43
}
// namespace io
44
}
// namespace toolbox
45
46
#endif
// TOOLBOX_IO_HOOK_HPP
TOOLBOX_API
#define TOOLBOX_API
Definition
Config.h:39
Slot.hpp
Time.hpp
toolbox::CyclTime
Definition
Time.hpp:126
toolbox::BasicSlot
Definition
Slot.hpp:26
toolbox::io::dispatch
void dispatch(CyclTime now, const HookList &l) noexcept
Definition
Hook.cpp:24
toolbox::io::HookList
boost::intrusive::list< Hook, boost::intrusive::constant_time_size< false > > HookList
Definition
Hook.hpp:39
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
toolbox::Hook
Definition
Hook.hpp:29
toolbox::io::Hook::Hook
Hook()=default
toolbox::io::Hook::Hook
Hook(Slot slot) noexcept
Definition
Hook.hpp:31
toolbox::io::Hook::slot
Slot slot
Definition
Hook.hpp:36
Generated by
1.9.8