le2d
v0.4.7
2D game engine framework
Loading...
Searching...
No Matches
scoped_mapping.hpp
Go to the documentation of this file.
1
#pragma once
2
#include "
le2d/input/action_mapping.hpp
"
3
#include "
le2d/input/router.hpp
"
4
5
namespace
le::input
{
7
template
<std::derived_from<IMapping> Type>
8
class
ScopedMapping
:
public
Type {
9
public
:
10
ScopedMapping
(
ScopedMapping
const
&) =
delete
;
11
ScopedMapping
(
ScopedMapping
&&) =
delete
;
12
auto
operator=
(
ScopedMapping
const
&) =
delete
;
13
auto
operator=
(
ScopedMapping
&&) =
delete
;
14
15
explicit
ScopedMapping
(gsl::not_null<Router*> router) : m_router(router) { router->push_mapping(
this
); }
16
17
~ScopedMapping
() { m_router->remove_mapping(
this
); }
18
19
private
:
20
gsl::not_null<Router*> m_router;
21
};
22
23
using
ScopedActionMapping
=
ScopedMapping<ActionMapping>
;
24
}
// namespace le::input
action_mapping.hpp
le::input::ScopedMapping
RAII wrapper for associating a mapping with a router.
Definition
scoped_mapping.hpp:8
le::input::ScopedMapping::operator=
auto operator=(ScopedMapping const &)=delete
le::input::ScopedMapping::ScopedMapping
ScopedMapping(ScopedMapping const &)=delete
le::input::ScopedMapping::ScopedMapping
ScopedMapping(gsl::not_null< Router * > router)
Definition
scoped_mapping.hpp:15
le::input::ScopedMapping::~ScopedMapping
~ScopedMapping()
Definition
scoped_mapping.hpp:17
le::input::ScopedMapping::operator=
auto operator=(ScopedMapping &&)=delete
le::input::ScopedMapping::ScopedMapping
ScopedMapping(ScopedMapping &&)=delete
le::input
Definition
action.hpp:4
router.hpp
lib
include
le2d
input
scoped_mapping.hpp
Generated by
1.9.8