simple_client_goal_state.h
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 #ifndef ACTIONLIB__CLIENT__SIMPLE_CLIENT_GOAL_STATE_H_
36 #define ACTIONLIB__CLIENT__SIMPLE_CLIENT_GOAL_STATE_H_
37 
38 #include <string>
39 
40 #include "ros/console.h"
41 
42 namespace actionlib
43 {
44 
45 class SimpleClientGoalState
46 {
47 public:
49  enum StateEnum
50  {
51  PENDING,
52  ACTIVE,
53  RECALLED,
54  REJECTED,
55  PREEMPTED,
56  ABORTED,
57  SUCCEEDED,
58  LOST
59  };
60 
62  std::string text_;
63 
64  SimpleClientGoalState(const StateEnum & state,
65  const std::string & text = std::string(""))
66  : state_(state), text_(text) {}
67 
68  inline bool operator==(const SimpleClientGoalState & rhs) const
69  {
70  return state_ == rhs.state_;
71  }
72 
73  inline bool operator==(const SimpleClientGoalState::StateEnum & rhs) const
74  {
75  return state_ == rhs;
76  }
77 
78  inline bool operator!=(const SimpleClientGoalState::StateEnum & rhs) const
79  {
80  return !(*this == rhs);
81  }
82 
83  inline bool operator!=(const SimpleClientGoalState & rhs) const
84  {
85  return !(*this == rhs);
86  }
87 
92  inline bool isDone() const
93  {
94  switch (state_) {
95  case RECALLED:
96  case REJECTED:
97  case PREEMPTED:
98  case ABORTED:
99  case SUCCEEDED:
100  case LOST:
101  return true;
102  default:
103  return false;
104  }
105  }
106 
107  std::string getText() const
108  {
109  return text_;
110  }
111 
113  std::string toString() const
114  {
115  switch (state_) {
116  case PENDING:
117  return "PENDING";
118  case ACTIVE:
119  return "ACTIVE";
120  case RECALLED:
121  return "RECALLED";
122  case REJECTED:
123  return "REJECTED";
124  case PREEMPTED:
125  return "PREEMPTED";
126  case ABORTED:
127  return "ABORTED";
128  case SUCCEEDED:
129  return "SUCCEEDED";
130  case LOST:
131  return "LOST";
132  default:
133  ROS_ERROR_NAMED("actionlib", "BUG: Unhandled SimpleGoalState: %u", state_);
134  break;
135  }
136  return "BUG-UNKNOWN";
137  }
138 };
139 
140 } // namespace actionlib
141 
142 #endif // ACTIONLIB__CLIENT__SIMPLE_CLIENT_GOAL_STATE_H_
actionlib::SimpleClientGoalState::state_
StateEnum state_
Definition: simple_client_goal_state.h:125
actionlib::SimpleClientGoalState::text_
std::string text_
Definition: simple_client_goal_state.h:126
actionlib::SimpleClientGoalState::ABORTED
@ ABORTED
Definition: simple_client_goal_state.h:152
actionlib::SimpleClientGoalState::SimpleClientGoalState
SimpleClientGoalState(const StateEnum &state, const std::string &text=std::string(""))
Definition: simple_client_goal_state.h:128
actionlib::SimpleClientGoalState::REJECTED
@ REJECTED
Definition: simple_client_goal_state.h:150
actionlib::SimpleClientGoalState
Definition: simple_client_goal_state.h:77
actionlib::SimpleClientGoalState::isDone
bool isDone() const
Determine if goal is done executing (ie. reached a terminal state)
Definition: simple_client_goal_state.h:156
ROS_ERROR_NAMED
#define ROS_ERROR_NAMED(name,...)
actionlib::SimpleClientGoalState::LOST
@ LOST
Definition: simple_client_goal_state.h:154
actionlib::SimpleClientGoalState::operator!=
bool operator!=(const SimpleClientGoalState::StateEnum &rhs) const
Definition: simple_client_goal_state.h:142
console.h
actionlib::SimpleClientGoalState::StateEnum
StateEnum
Defines the various states the goal can be in.
Definition: simple_client_goal_state.h:113
actionlib::SimpleClientGoalState::getText
std::string getText() const
Definition: simple_client_goal_state.h:171
actionlib::SimpleClientGoalState::PENDING
@ PENDING
Definition: simple_client_goal_state.h:147
actionlib::SimpleClientGoalState::SUCCEEDED
@ SUCCEEDED
Definition: simple_client_goal_state.h:153
actionlib::SimpleClientGoalState::RECALLED
@ RECALLED
Definition: simple_client_goal_state.h:149
actionlib::SimpleClientGoalState::operator==
bool operator==(const SimpleClientGoalState &rhs) const
Definition: simple_client_goal_state.h:132
actionlib::SimpleClientGoalState::ACTIVE
@ ACTIVE
Definition: simple_client_goal_state.h:148
actionlib
Definition: action_definition.h:40
actionlib::SimpleClientGoalState::toString
std::string toString() const
Convert the state to a string. Useful when printing debugging information.
Definition: simple_client_goal_state.h:177
actionlib::SimpleClientGoalState::PREEMPTED
@ PREEMPTED
Definition: simple_client_goal_state.h:151


actionlib
Author(s): Eitan Marder-Eppstein, Vijay Pradeep, Mikael Arguedas
autogenerated on Fri May 19 2023 02:36:55