moveit2
The MoveIt Motion Planning Framework for ROS 2.
moveit_ros
moveit_servo
include
moveit_servo
make_shared_from_pool.h
Go to the documentation of this file.
1
/*******************************************************************************
2
* Title : make_shared_from_pool.h
3
* Project : moveit_servo
4
* Created : 1/11/2019
5
* Author : Tyler Weaver
6
*
7
* BSD 3-Clause License
8
*
9
* Copyright (c) 2019, Los Alamos National Security, LLC
10
* All rights reserved.
11
*
12
* Redistribution and use in source and binary forms, with or without
13
* modification, are permitted provided that the following conditions are met:
14
*
15
* * Redistributions of source code must retain the above copyright notice, this
16
* list of conditions and the following disclaimer.
17
*
18
* * Redistributions in binary form must reproduce the above copyright notice,
19
* this list of conditions and the following disclaimer in the documentation
20
* and/or other materials provided with the distribution.
21
*
22
* * Neither the name of the copyright holder nor the names of its
23
* contributors may be used to endorse or promote products derived from
24
* this software without specific prior written permission.
25
*
26
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
* ARE
30
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
*******************************************************************************/
38
39
#pragma once
40
41
#include <memory>
42
#include <boost/pool/pool_alloc.hpp>
43
44
namespace
moveit
45
{
46
namespace
util
47
{
48
// Useful template for creating messages from a message pool
49
template
<
typename
T>
50
std::shared_ptr<T>
make_shared_from_pool
()
51
{
52
using
allocator_t = boost::fast_pool_allocator<std::shared_ptr<T>>;
53
return
std::allocate_shared<T, allocator_t>(allocator_t());
54
}
55
56
}
// namespace util
57
}
// namespace moveit
moveit::util::make_shared_from_pool
std::shared_ptr< T > make_shared_from_pool()
Definition:
make_shared_from_pool.h:50
moveit
Main namespace for MoveIt.
Definition:
exceptions.h:43
Generated by
1.9.1