// Generated by gencpp from file actionlib_msgs/GoalStatus.msg
// DO NOT EDIT!

#ifndef ROBOT_ACTIONLIB_MSGS_MESSAGE_GOALSTATUS_H
#define ROBOT_ACTIONLIB_MSGS_MESSAGE_GOALSTATUS_H

#include <string>
#include <vector>
#include <memory>
#include <robot_actionlib_msgs/GoalID.h>

namespace robot_actionlib_msgs
{
  template <class ContainerAllocator>
  struct GoalStatus_
  {
    typedef GoalStatus_<ContainerAllocator> Type;

    GoalStatus_()
        : goal_id(), status(0), text()
    {
    }
    GoalStatus_(const ContainerAllocator &_alloc)
        : goal_id(_alloc), status(0), text(_alloc)
    {
      (void)_alloc;
    }

    typedef ::robot_actionlib_msgs::GoalID_<ContainerAllocator> _goal_id_type;
    _goal_id_type goal_id;

    typedef uint8_t _status_type;
    _status_type status;

    typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _text_type;
    _text_type text;

// reducing the odds to have name collisions with Windows.h
#if defined(_WIN32) && defined(PENDING)
#undef PENDING
#endif
#if defined(_WIN32) && defined(ACTIVE)
#undef ACTIVE
#endif
#if defined(_WIN32) && defined(PREEMPTED)
#undef PREEMPTED
#endif
#if defined(_WIN32) && defined(SUCCEEDED)
#undef SUCCEEDED
#endif
#if defined(_WIN32) && defined(ABORTED)
#undef ABORTED
#endif
#if defined(_WIN32) && defined(REJECTED)
#undef REJECTED
#endif
#if defined(_WIN32) && defined(PREEMPTING)
#undef PREEMPTING
#endif
#if defined(_WIN32) && defined(RECALLING)
#undef RECALLING
#endif
#if defined(_WIN32) && defined(RECALLED)
#undef RECALLED
#endif
#if defined(_WIN32) && defined(LOST)
#undef LOST
#endif

    enum
    {
      PENDING = 0u,
      ACTIVE = 1u,
      PREEMPTED = 2u,
      SUCCEEDED = 3u,
      ABORTED = 4u,
      REJECTED = 5u,
      PREEMPTING = 6u,
      RECALLING = 7u,
      RECALLED = 8u,
      LOST = 9u,
    };

    typedef boost::shared_ptr<::robot_actionlib_msgs::GoalStatus_<ContainerAllocator>> Ptr;
    typedef boost::shared_ptr<::robot_actionlib_msgs::GoalStatus_<ContainerAllocator> const> ConstPtr;

  }; // struct GoalStatus_

  typedef ::robot_actionlib_msgs::GoalStatus_<std::allocator<void>> GoalStatus;

  typedef boost::shared_ptr<::robot_actionlib_msgs::GoalStatus> GoalStatusPtr;
  typedef boost::shared_ptr<::robot_actionlib_msgs::GoalStatus const> GoalStatusConstPtr;

  // constants requiring out of line definition

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator==(const ::robot_actionlib_msgs::GoalStatus_<ContainerAllocator1> &lhs, const ::robot_actionlib_msgs::GoalStatus_<ContainerAllocator2> &rhs)
  {
    return lhs.goal_id == rhs.goal_id &&
           lhs.status == rhs.status &&
           lhs.text == rhs.text;
  }

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

} // namespace robot_actionlib_msgs

#endif // ROBOT_ACTIONLIB_MSGS_MESSAGE_GOALSTATUS_H
