src
goal_id_generator.cpp
Go to the documentation of this file.
1
/*********************************************************************
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2008, Willow Garage, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of the Willow Garage nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*********************************************************************/
34
35
#include <
ros/ros.h
>
36
#include <
actionlib/goal_id_generator.h
>
37
#include <boost/thread/mutex.hpp>
38
#include <string>
39
40
// using namespace actionlib;
41
42
static
boost::mutex
s_goalcount_mutex_
;
43
static
unsigned
int
s_goalcount_
= 0;
44
45
actionlib::GoalIDGenerator::GoalIDGenerator
()
46
{
47
setName
(
ros::this_node::getName
());
48
}
49
50
actionlib::GoalIDGenerator::GoalIDGenerator
(
const
std::string & name)
51
{
52
setName
(name);
53
}
54
55
void
actionlib::GoalIDGenerator::setName
(
const
std::string & name)
56
{
57
name_
= name;
58
}
59
60
actionlib_msgs::GoalID
actionlib::GoalIDGenerator::generateID
()
61
{
62
actionlib_msgs::GoalID id;
63
ros::Time
cur_time =
ros::Time::now
();
64
std::stringstream ss;
65
66
ss <<
name_
<<
"-"
;
67
68
{
69
boost::mutex::scoped_lock lock(
s_goalcount_mutex_
);
70
s_goalcount_
++;
71
ss <<
s_goalcount_
<<
"-"
;
72
}
73
74
ss << cur_time.
sec
<<
"."
<< cur_time.
nsec
;
75
id
.id = ss.str();
76
id
.stamp = cur_time;
77
return
id;
78
}
s_goalcount_mutex_
static boost::mutex s_goalcount_mutex_
Definition:
goal_id_generator.cpp:42
actionlib::GoalIDGenerator::name_
std::string name_
Definition:
goal_id_generator.h:76
ros::Time
TimeBase< Time, Duration >::sec
uint32_t sec
actionlib::GoalIDGenerator::GoalIDGenerator
GoalIDGenerator()
Definition:
goal_id_generator.cpp:45
ros::this_node::getName
ROSCPP_DECL const std::string & getName()
TimeBase< Time, Duration >::nsec
uint32_t nsec
s_goalcount_
static unsigned int s_goalcount_
Definition:
goal_id_generator.cpp:43
actionlib::GoalIDGenerator::setName
void setName(const std::string &name)
Definition:
goal_id_generator.cpp:55
ros.h
actionlib::GoalIDGenerator::generateID
actionlib_msgs::GoalID generateID()
Generates a unique ID.
Definition:
goal_id_generator.cpp:60
ros::Time::now
static Time now()
goal_id_generator.h
actionlib
Author(s): Eitan Marder-Eppstein, Vijay Pradeep, Mikael Arguedas
autogenerated on Mon Feb 28 2022 21:34:38