// Generated by gencpp from file robot_protocol_msgs/Info.msg
// DO NOT EDIT!


#ifndef ROBOT_PROTOCOL_MSGS_MESSAGE_INFO_H
#define ROBOT_PROTOCOL_MSGS_MESSAGE_INFO_H


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

#include <robot_protocol_msgs/InfoReference.h>

namespace robot_protocol_msgs
{
template <class ContainerAllocator>
struct Info_
{
  typedef Info_<ContainerAllocator> Type;

  Info_()
    : infoType()
    , infoReferences()
    , infoDescription()
    , infoLevel()  {
    }
  Info_(const ContainerAllocator& _alloc)
    : infoType(_alloc)
    , infoReferences(_alloc)
    , infoDescription(_alloc)
    , infoLevel(_alloc)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _infoType_type;
  _infoType_type infoType;

   typedef std::vector< ::robot_protocol_msgs::InfoReference_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_protocol_msgs::InfoReference_<ContainerAllocator> >> _infoReferences_type;
  _infoReferences_type infoReferences;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _infoDescription_type;
  _infoDescription_type infoDescription;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _infoLevel_type;
  _infoLevel_type infoLevel;



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


  static const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> DEBUG;
  static const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> INFO;

  typedef boost::shared_ptr< ::robot_protocol_msgs::Info_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_protocol_msgs::Info_<ContainerAllocator> const> ConstPtr;

}; // struct Info_

typedef ::robot_protocol_msgs::Info_<std::allocator<void> > Info;

typedef boost::shared_ptr< ::robot_protocol_msgs::Info > InfoPtr;
typedef boost::shared_ptr< ::robot_protocol_msgs::Info const> InfoConstPtr;

// constants requiring out of line definition

   
   template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>
      Info_<ContainerAllocator>::DEBUG =
        
          "DEBUG"
        
        ;
   

   
   template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>
      Info_<ContainerAllocator>::INFO =
        
          "INFO"
        
        ;
   

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_protocol_msgs::Info_<ContainerAllocator1> & lhs, const ::robot_protocol_msgs::Info_<ContainerAllocator2> & rhs)
{
  return lhs.infoType == rhs.infoType &&
    lhs.infoReferences == rhs.infoReferences &&
    lhs.infoDescription == rhs.infoDescription &&
    lhs.infoLevel == rhs.infoLevel;
}

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


} // namespace robot_protocol_msgs

#endif // ROBOT_PROTOCOL_MSGS_MESSAGE_INFO_H
