// Generated by gencpp from file robot_sensor_msgs/PointField.msg
// DO NOT EDIT!


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_POINTFIELD_H
#define ROBOT_SENSOR_MSGS_MESSAGE_POINTFIELD_H


#include <string>
#include <vector>
#include <memory>
#include <boost/shared_ptr.hpp>


namespace robot_sensor_msgs
{
template <class ContainerAllocator>
struct PointField_
{
  typedef PointField_<ContainerAllocator> Type;

  PointField_()
    : name()
    , offset(0)
    , datatype(0)
    , count(0)  {
    }
  PointField_(const ContainerAllocator& _alloc)
    : name(_alloc)
    , offset(0)
    , datatype(0)
    , count(0)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _name_type;
  _name_type name;

   typedef uint32_t _offset_type;
  _offset_type offset;

   typedef uint8_t _datatype_type;
  _datatype_type datatype;

   typedef uint32_t _count_type;
  _count_type count;



// reducing the odds to have name collisions with Windows.h 
#if defined(_WIN32) && defined(INT8)
  #undef INT8
#endif
#if defined(_WIN32) && defined(UINT8)
  #undef UINT8
#endif
#if defined(_WIN32) && defined(INT16)
  #undef INT16
#endif
#if defined(_WIN32) && defined(UINT16)
  #undef UINT16
#endif
#if defined(_WIN32) && defined(INT32)
  #undef INT32
#endif
#if defined(_WIN32) && defined(UINT32)
  #undef UINT32
#endif
#if defined(_WIN32) && defined(FLOAT32)
  #undef FLOAT32
#endif
#if defined(_WIN32) && defined(FLOAT64)
  #undef FLOAT64
#endif

  enum {
    INT8 = 1u,
    UINT8 = 2u,
    INT16 = 3u,
    UINT16 = 4u,
    INT32 = 5u,
    UINT32 = 6u,
    FLOAT32 = 7u,
    FLOAT64 = 8u,
  };


  typedef boost::shared_ptr< ::robot_sensor_msgs::PointField_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_sensor_msgs::PointField_<ContainerAllocator> const> ConstPtr;

}; // struct PointField_

typedef ::robot_sensor_msgs::PointField_<std::allocator<void> > PointField;

typedef boost::shared_ptr< ::robot_sensor_msgs::PointField > PointFieldPtr;
typedef boost::shared_ptr< ::robot_sensor_msgs::PointField const> PointFieldConstPtr;

// constants requiring out of line definition


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::PointField_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::PointField_<ContainerAllocator2> & rhs)
{
  return lhs.name == rhs.name &&
    lhs.offset == rhs.offset &&
    lhs.datatype == rhs.datatype &&
    lhs.count == rhs.count;
}

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


} // namespace robot_sensor_msgs


#endif // ROBOT_SENSOR_MSGS_MESSAGE_POINTFIELD_H
