// Generated by gencpp from file robot_move_base_msgs/RecoveryStatus.msg
// DO NOT EDIT!

#ifndef ROBOT_MOVE_BASE_MSGS_MESSAGE_RECOVERYSTATUS_H
#define ROBOT_MOVE_BASE_MSGS_MESSAGE_RECOVERYSTATUS_H

#include <string>
#include <vector>
#include <memory>

#include <robot_geometry_msgs/PoseStamped.h>

namespace robot_move_base_msgs
{
  template <class ContainerAllocator>
  struct RecoveryStatus_
  {
    typedef RecoveryStatus_<ContainerAllocator> Type;

    RecoveryStatus_()
        : pose_stamped(), current_recovery_number(0), total_number_of_recoveries(0), recovery_behavior_name()
    {
    }
    RecoveryStatus_(const ContainerAllocator &_alloc)
        : pose_stamped(_alloc), current_recovery_number(0), total_number_of_recoveries(0), recovery_behavior_name(_alloc)
    {
      (void)_alloc;
    }

    typedef ::robot_geometry_msgs::PoseStamped_<ContainerAllocator> _pose_stamped_type;
    _pose_stamped_type pose_stamped;

    typedef uint16_t _current_recovery_number_type;
    _current_recovery_number_type current_recovery_number;

    typedef uint16_t _total_number_of_recoveries_type;
    _total_number_of_recoveries_type total_number_of_recoveries;

    typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _recovery_behavior_name_type;
    _recovery_behavior_name_type recovery_behavior_name;

    typedef boost::shared_ptr<::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator>> Ptr;
    typedef boost::shared_ptr<::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator> const> ConstPtr;

  }; // struct RecoveryStatus_

  typedef ::robot_move_base_msgs::RecoveryStatus_<std::allocator<void>> RecoveryStatus;

  typedef boost::shared_ptr<::robot_move_base_msgs::RecoveryStatus> RecoveryStatusPtr;
  typedef boost::shared_ptr<::robot_move_base_msgs::RecoveryStatus const> RecoveryStatusConstPtr;

  // constants requiring out of line definition

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator==(const ::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator1> &lhs, const ::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator2> &rhs)
  {
    return lhs.pose_stamped == rhs.pose_stamped &&
           lhs.current_recovery_number == rhs.current_recovery_number &&
           lhs.total_number_of_recoveries == rhs.total_number_of_recoveries &&
           lhs.recovery_behavior_name == rhs.recovery_behavior_name;
  }

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator!=(const ::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator1> &lhs, const ::robot_move_base_msgs::RecoveryStatus_<ContainerAllocator2> &rhs)
  {
    return !(lhs == rhs);
  }

} // namespace robot_move_base_msgs

#endif // ROBOT_MOVE_BASE_MSGS_MESSAGE_RECOVERYSTATUS_H
