Main Page
Namespaces
Classes
Files
File List
File Members
src
resource
managed_resource.cpp
Go to the documentation of this file.
1
/*********************************************************************
2
*
3
* Software License Agreement (BSD License)
4
*
5
* Copyright (c) 2018, University of Luxembourg
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/or other materials provided
17
* with the distribution.
18
* * Neither the name of University of Luxembourg nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*
35
* Author: Maciej Zurad
36
*********************************************************************/
37
#include <
robot_activity/resource/managed_resource.h
>
38
39
namespace
robot_activity
40
{
41
namespace
resource
42
{
43
44
template
<
class
Specialization,
class
Resource>
45
Managed<Specialization, Resource>::~Managed
()
46
{
47
ROS_DEBUG
(
"Managed::dtor"
);
48
}
49
50
template
<
class
Specialization,
class
Resource>
51
void
Managed<Specialization, Resource>::acquire
(
const
ros::NodeHandlePtr
& node_handle)
52
{
53
ROS_DEBUG
(
"Managed::acquire executed!"
);
54
if
(acquired_)
55
{
56
ROS_DEBUG
(
"Already acquired!"
);
57
return
;
58
}
59
60
ROS_DEBUG
(
"Subscribing..."
);
61
resource_ = lazy_acquirer_(node_handle);
62
acquired_ =
true
;
63
}
64
65
template
<
class
Specialization,
class
Resource>
66
void
Managed<Specialization, Resource>::release
()
67
{
68
ROS_DEBUG
(
"Managed::release executed!"
);
69
if
(acquired_)
70
{
71
ROS_DEBUG
(
"Releasing..."
);
72
resource_.shutdown();
73
acquired_ =
false
;
74
}
75
else
76
{
77
ROS_DEBUG
(
"Cannot release "
);
78
}
79
}
80
81
template
<
class
Specialization,
class
Resource>
82
void
Managed<Specialization, Resource>::pause
()
83
{
84
ROS_DEBUG
(
"Managed::pause executed!"
);
85
paused_ =
true
;
86
}
87
88
template
<
class
Specialization,
class
Resource>
89
void
Managed<Specialization, Resource>::resume
()
90
{
91
ROS_DEBUG
(
"Managed::resume executed!"
);
92
paused_ =
false
;
93
}
94
95
template
class
Managed<ManagedSubscriber, ros::Subscriber>
;
96
template
class
Managed<ManagedServiceServer, ros::ServiceServer>
;
97
98
}
// namespace resource
99
}
// namespace robot_activity
robot_activity::resource::Managed::resume
void resume()
Resumes the resource.
Definition:
managed_resource.cpp:89
boost::shared_ptr< NodeHandle >
robot_activity::resource::Managed< ManagedSubscriber, ros::Subscriber >
robot_activity::resource::Managed::release
void release()
Releases the resource if it's already acquired. shutdown() method in case of ros::Subscriber and ros:...
Definition:
managed_resource.cpp:66
robot_activity::resource::Managed::pause
void pause()
Pauses the resource.
Definition:
managed_resource.cpp:82
robot_activity
Definition:
isolated_async_timer.h:53
robot_activity::resource::Managed::~Managed
~Managed()
Destructor.
Definition:
managed_resource.cpp:45
robot_activity::resource::Managed::acquire
void acquire(const ros::NodeHandlePtr &node_handle)
Acquires the resource if it's not already acquired.
Definition:
managed_resource.cpp:51
managed_resource.h
Managed<Derived,R> class implements a base class which manages ROS resources, such as ros::Subscriber...
ROS_DEBUG
#define ROS_DEBUG(...)
robot_activity
Author(s): Maciej ZURAD
autogenerated on Thu Jun 6 2019 19:32:17