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


#ifndef ROBOT_VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H
#define ROBOT_VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H


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


#include <robot_visualization_msgs/InteractiveMarker.h>

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

  InteractiveMarkerInit_()
    : server_id()
    , seq_num(0)
    , markers()  {
    }
  InteractiveMarkerInit_(const ContainerAllocator& _alloc)
    : server_id(_alloc)
    , seq_num(0)
    , markers(_alloc)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _server_id_type;
  _server_id_type server_id;

   typedef uint64_t _seq_num_type;
  _seq_num_type seq_num;

   typedef std::vector< ::robot_visualization_msgs::InteractiveMarker_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_visualization_msgs::InteractiveMarker_<ContainerAllocator> >> _markers_type;
  _markers_type markers;





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

}; // struct InteractiveMarkerInit_

typedef ::robot_visualization_msgs::InteractiveMarkerInit_<std::allocator<void> > InteractiveMarkerInit;

typedef boost::shared_ptr< ::robot_visualization_msgs::InteractiveMarkerInit > InteractiveMarkerInitPtr;
typedef boost::shared_ptr< ::robot_visualization_msgs::InteractiveMarkerInit const> InteractiveMarkerInitConstPtr;

// constants requiring out of line definition

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_visualization_msgs::InteractiveMarkerInit_<ContainerAllocator1> & lhs, const ::robot_visualization_msgs::InteractiveMarkerInit_<ContainerAllocator2> & rhs)
{
  return lhs.server_id == rhs.server_id &&
    lhs.seq_num == rhs.seq_num &&
    lhs.markers == rhs.markers;
}

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


} // namespace robot_visualization_msgs


#endif // ROBOT_VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H
