23 #ifndef VARIANT_TOPIC_TOOLS_MESSAGE_FIELD_H 24 #define VARIANT_TOPIC_TOOLS_MESSAGE_FIELD_H 26 #include <boost/type_traits.hpp> 37 template <
typename T>
class MessageField :
38 public MessageFieldCollection<T> {
59 const std::string&
getName()
const;
83 void write(std::ostream& stream,
const std::string& indent =
88 bool operator==(
const MessageField<T>& field)
const;
93 bool operator!=(
const MessageField<T>& field)
const;
107 template <
typename U>
static bool isValid(
const U& value,
typename boost::
113 template <
typename U>
static bool isValid(
const U& value,
typename boost::
119 template <
typename U>
static void writeValue(std::ostream& stream,
const 120 U& value,
typename boost::enable_if<boost::has_left_shift<std::ostream,
121 const U&> >::type* = 0);
126 template <
typename U>
static void writeValue(std::ostream& stream,
const 127 U& value,
typename boost::disable_if<boost::has_left_shift<std::ostream,
128 const U&> >::type* = 0);
133 template <
typename T> std::ostream&
operator<<(std::ostream& stream,
137 #include <variant_topic_tools/MessageField.tpp>
Header file providing the MessageFieldTypeTraits class interface.
Header file providing the MessageFieldCollection class interface.
Header file providing the MessageType class interface.