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


#ifndef ROBOT_PROTOCOL_MSGS_MESSAGE_ERROR_H
#define ROBOT_PROTOCOL_MSGS_MESSAGE_ERROR_H


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

#include <robot_protocol_msgs/ErrorReference.h>

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

  Error_()
    : errorType()
    , errorReferences()
    , errorDescription()
    , errorLevel()  {
    }
  Error_(const ContainerAllocator& _alloc)
    : errorType(_alloc)
    , errorReferences(_alloc)
    , errorDescription(_alloc)
    , errorLevel(_alloc)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _errorType_type;
  _errorType_type errorType;

   typedef std::vector< ::robot_protocol_msgs::ErrorReference_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_protocol_msgs::ErrorReference_<ContainerAllocator> >> _errorReferences_type;
  _errorReferences_type errorReferences;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _errorDescription_type;
  _errorDescription_type errorDescription;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _errorLevel_type;
  _errorLevel_type errorLevel;



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


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

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

}; // struct Error_

typedef ::robot_protocol_msgs::Error_<std::allocator<void> > Error;

typedef boost::shared_ptr< ::robot_protocol_msgs::Error > ErrorPtr;
typedef boost::shared_ptr< ::robot_protocol_msgs::Error const> ErrorConstPtr;

// 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>>
      Error_<ContainerAllocator>::WARNING =
        
          "WARNING"
        
        ;
   

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


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_protocol_msgs::Error_<ContainerAllocator1> & lhs, const ::robot_protocol_msgs::Error_<ContainerAllocator2> & rhs)
{
  return lhs.errorType == rhs.errorType &&
    lhs.errorReferences == rhs.errorReferences &&
    lhs.errorDescription == rhs.errorDescription &&
    lhs.errorLevel == rhs.errorLevel;
}

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


} // namespace robot_protocol_msgs

#endif // ROBOT_PROTOCOL_MSGS_MESSAGE_ERROR_H
