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

#ifndef ROBOT_MOVE_BASE_MSGS_MESSAGE_MOVEBASEACTION_H
#define ROBOT_MOVE_BASE_MSGS_MESSAGE_MOVEBASEACTION_H

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

#include <robot_move_base_msgs/MoveBaseActionGoal.h>
#include <robot_move_base_msgs/MoveBaseActionResult.h>
#include <robot_move_base_msgs/MoveBaseActionFeedback.h>

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

    MoveBaseAction_()
        : action_goal(), action_result(), action_feedback()
    {
    }
    MoveBaseAction_(const ContainerAllocator &_alloc)
        : action_goal(_alloc), action_result(_alloc), action_feedback(_alloc)
    {
      (void)_alloc;
    }

    typedef ::robot_move_base_msgs::MoveBaseActionGoal_<ContainerAllocator> _action_goal_type;
    _action_goal_type action_goal;

    typedef ::robot_move_base_msgs::MoveBaseActionResult_<ContainerAllocator> _action_result_type;
    _action_result_type action_result;

    typedef ::robot_move_base_msgs::MoveBaseActionFeedback_<ContainerAllocator> _action_feedback_type;
    _action_feedback_type action_feedback;

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

  }; // struct MoveBaseAction_

  typedef ::robot_move_base_msgs::MoveBaseAction_<std::allocator<void>> MoveBaseAction;

  typedef boost::shared_ptr<::robot_move_base_msgs::MoveBaseAction> MoveBaseActionPtr;
  typedef boost::shared_ptr<::robot_move_base_msgs::MoveBaseAction const> MoveBaseActionConstPtr;

  // constants requiring out of line definition

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator==(const ::robot_move_base_msgs::MoveBaseAction_<ContainerAllocator1> &lhs, const ::robot_move_base_msgs::MoveBaseAction_<ContainerAllocator2> &rhs)
  {
    return lhs.action_goal == rhs.action_goal &&
           lhs.action_result == rhs.action_result &&
           lhs.action_feedback == rhs.action_feedback;
  }

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

} // namespace robot_move_base_msgs

#endif // ROBOT_MOVE_BASE_MSGS_MESSAGE_MOVEBASEACTION_H
