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


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_JOINTSTATE_H
#define ROBOT_SENSOR_MSGS_MESSAGE_JOINTSTATE_H


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

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

  JointState_()
    : header()
    , name()
    , position()
    , velocity()
    , effort()  {
    }
  JointState_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , name(_alloc)
    , position(_alloc)
    , velocity(_alloc)
    , effort(_alloc)  {
  (void)_alloc;
    }



   typedef  ::robot_std_msgs::Header_<ContainerAllocator>  _header_type;
  _header_type header;

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

   typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _position_type;
  _position_type position;

   typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _velocity_type;
  _velocity_type velocity;

   typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _effort_type;
  _effort_type effort;





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

}; // struct JointState_

typedef ::robot_sensor_msgs::JointState_<std::allocator<void> > JointState;

typedef boost::shared_ptr< ::robot_sensor_msgs::JointState > JointStatePtr;
typedef boost::shared_ptr< ::robot_sensor_msgs::JointState const> JointStateConstPtr;

// constants requiring out of line definition

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::JointState_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::JointState_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.name == rhs.name &&
    lhs.position == rhs.position &&
    lhs.velocity == rhs.velocity &&
    lhs.effort == rhs.effort;
}

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


} // namespace robot_sensor_msgs

#endif // ROBOT_SENSOR_MSGS_MESSAGE_JOINTSTATE_H
