// Generated by gencpp from file robot_visualization_msgs/MenuEntry.msg
// DO NOT EDIT!


#ifndef ROBOT_VISUALIZATION_MSGS_MESSAGE_MENUENTRY_H
#define ROBOT_VISUALIZATION_MSGS_MESSAGE_MENUENTRY_H


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


namespace robot_visualization_msgs
{
template <class ContainerAllocator>
struct MenuEntry_
{
  typedef MenuEntry_<ContainerAllocator> Type;

  MenuEntry_()
    : id(0)
    , parent_id(0)
    , title()
    , command()
    , command_type(0)  {
    }
  MenuEntry_(const ContainerAllocator& _alloc)
    : id(0)
    , parent_id(0)
    , title(_alloc)
    , command(_alloc)
    , command_type(0)  {
  (void)_alloc;
    }



   typedef uint32_t _id_type;
  _id_type id;

   typedef uint32_t _parent_id_type;
  _parent_id_type parent_id;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _title_type;
  _title_type title;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _command_type;
  _command_type command;

   typedef uint8_t _command_type_type;
  _command_type_type command_type;



// reducing the odds to have name collisions with Windows.h 
#if defined(_WIN32) && defined(FEEDBACK)
  #undef FEEDBACK
#endif
#if defined(_WIN32) && defined(ROSRUN)
  #undef ROSRUN
#endif
#if defined(_WIN32) && defined(ROSLAUNCH)
  #undef ROSLAUNCH
#endif

  enum {
    FEEDBACK = 0u,
    ROSRUN = 1u,
    ROSLAUNCH = 2u,
  };


  typedef boost::shared_ptr< ::robot_visualization_msgs::MenuEntry_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_visualization_msgs::MenuEntry_<ContainerAllocator> const> ConstPtr;

}; // struct MenuEntry_

typedef ::robot_visualization_msgs::MenuEntry_<std::allocator<void> > MenuEntry;

typedef boost::shared_ptr< ::robot_visualization_msgs::MenuEntry > MenuEntryPtr;
typedef boost::shared_ptr< ::robot_visualization_msgs::MenuEntry const> MenuEntryConstPtr;

// constants requiring out of line definition


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_visualization_msgs::MenuEntry_<ContainerAllocator1> & lhs, const ::robot_visualization_msgs::MenuEntry_<ContainerAllocator2> & rhs)
{
  return lhs.id == rhs.id &&
    lhs.parent_id == rhs.parent_id &&
    lhs.title == rhs.title &&
    lhs.command == rhs.command &&
    lhs.command_type == rhs.command_type;
}

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


} // namespace robot_visualization_msgs

#endif // ROBOT_VISUALIZATION_MSGS_MESSAGE_MENUENTRY_H
