// Modifying the raw packet data
+#ifndef DOXYGEN
template <class InputIterator>
prefix_ void senf::PacketData::
insert(iterator pos, InputIterator f, InputIterator l,
{
impl().insert(this,pos,f,l);
}
+#else
+template <class InputIterator>
+prefix_ void senf::PacketData::
+insert(iterator pos, InputIterator f, InputIterator l)
+{}
+#endif
///////////////////////////////cti.e///////////////////////////////////////
#undef prefix_
#define prefix_
///////////////////////////////ct.p////////////////////////////////////////
+#ifndef DOXYGEN
template <class Parser>
prefix_ typename boost::enable_if<
boost::is_base_of<senf::PacketParserBase, Parser>,
PacketParserBase::data_iterator(new_target.i()) );
return new_target;
}
+#else
+template <class Parser>
+prefix_ Parser senf::operator<<(Parser target, Parser source)
+{}
+#endif
///////////////////////////////ct.e////////////////////////////////////////
#undef prefix_
return detail::packetParserSize(p,0);
}
+#ifndef DOXYGEN
template <class Parser, class Value>
prefix_ typename boost::enable_if_c <
boost::is_base_of<senf::PacketParserBase, Parser>::value
target.value(value);
return target;
}
+#else
+template <class Parser, class Value>
+prefix_ Parser senf::operator<<(Parser target, Value const & value)
+{}
+#endif
template <class Parser>
prefix_ senf::PacketParserBase::size_type
struct init_bytes : public detail::ParserInitBytes<Parser>
{};
+# ifndef DOXYGEN
+ template <class Parser>
+ typename boost::enable_if<
+ boost::is_base_of<PacketParserBase, Parser>,
+ Parser >::type
+ operator<<(Parser target, Parser source);
+# else
/** \brief Generic parser copying
This operator allows to copy the values of identical parsers. This operation does \e not
\ingroup packetparser
*/
-# ifndef DOXYGEN
- template <class Parser>
- typename boost::enable_if<
- boost::is_base_of<PacketParserBase, Parser>,
- Parser >::type
- operator<<(Parser target, Parser source);
-# else
template <class Parser>
Parser operator<<(Parser target, Parser source);
# endif
+# ifndef DOXYGEN
+ template <class Parser, class Value>
+ typename boost::enable_if_c <
+ boost::is_base_of<PacketParserBase, Parser>::value
+ && ! boost::is_base_of<PacketParserBase, Value>::value,
+ Parser >::type
+ operator<<(Parser target, Value const & value);
+# else
/** \brief Generic parser value assignment
This operator allows to assign a value to parsers which implement a <tt>value(</tt>\a
\ingroup packetparser
*/
template <class Parser, class Value>
- typename boost::enable_if_c <
- boost::is_base_of<PacketParserBase, Parser>::value
- && ! boost::is_base_of<PacketParserBase, Value>::value,
- Parser >::type
- operator<<(Parser target, Value const & value);
+ Parser operator<<(Parser target, Value const & value);
+# endif
/** \defgroup packetparsermacros Helper macros for defining new packet parsers
}
}
+#ifndef DOXYGEN
template <class ListPolicy>
template <class ForwardIterator>
prefix_ void senf::Parse_List_Container<ListPolicy>::
sp += senf::bytes(value_type(sp,state()));
}
}
+#else
+template <class ListPolicy>
+template <class ForwardIterator>
+prefix_ void senf::Parse_List_Container<ListPolicy>::
+insert(iterator pos, ForwardIterator f, ForwardIterator l)
+{}
+#endif
template <class ListPolicy>
prefix_ void senf::Parse_List_Container<ListPolicy>::erase(iterator pos,
*j << t;
}
+#ifndef DOXYGEN
template <class ElementParser, class Sizer>
template <class ForwardIterator>
prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>::
for (iterator j (shift(pos,std::distance(f,l))); f!=l; ++f,++j)
*j << *f;
}
+#else
+template <class ElementParser, class Sizer>
+template <class ForwardIterator>
+prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>::
+insert(iterator pos, ForwardIterator f, ForwardIterator l)
+{}
+#endif
template <class ElementParser, class Sizer>
prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>::resize(size_type n)
// senf::ClientSocketHandle<Policy>::read
+#ifndef DOXYGEN
template <class Policy>
template <class ForwardWritableRange>
prefix_ typename boost::range_iterator<ForwardWritableRange>::type
>::value && sizeof(typename boost::range_value<ForwardWritableRange>::type)==sizeof(char)
>::read(*this, range);
}
+#else
+template <class Policy>
+template <class ForwardWritableRange>
+prefix_ typename boost::range_iterator<ForwardWritableRange>::type
+senf::ClientSocketHandle<Policy>::
+read(ForwardWritableRange const & range)
+{}
+#endif
template <class Policy>
template <class ForwardWritableRange>
#define prefix_ inline
///////////////////////////////cti.p///////////////////////////////////////
+#ifndef DOXYGEN
template <class ForwardRange>
prefix_ senf::LLSocketAddress::
LLSocketAddress(ForwardRange const & address, std::string interface,
this->address(address);
this->interface(interface);
}
+#else
+template <class ForwardRange>
+prefix_ senf::LLSocketAddress::
+LLSocketAddress(ForwardRange const & address, std::string interface)
+{}
+#endif
///////////////////////////////cti.e///////////////////////////////////////
#undef prefix_