X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.hh;h=1eff5ce5d0311d88350fe44ae870672e4728ef61;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=07f20693057c1a9f0e96dd5dfc86ab7b5c8bb22c;hpb=5457377c2eda70c535303f6cf87413bbb51bf1ea;p=senf.git diff --git a/Socket/ClientSocketHandle.hh b/Socket/ClientSocketHandle.hh index 07f2069..1eff5ce 100644 --- a/Socket/ClientSocketHandle.hh +++ b/Socket/ClientSocketHandle.hh @@ -30,6 +30,8 @@ // Custom includes #include #include +#include +#include #include "SocketHandle.hh" //#include "ClientSocketHandle.mpp" @@ -84,10 +86,6 @@ namespace senf { \see \ref policy_group \n \ref protocol_group - - \fixme Add enable_if conditions so anything convertible to unsigned will not be interpreted - as a Range template argument but will use the unsigned variant of - read/readfrom/write/writeto. */ template class ClientSocketHandle @@ -125,13 +123,22 @@ namespace senf { ClientSocketHandle(); // conversion constructors +# ifndef DOXYGEN template ClientSocketHandle(ClientSocketHandle other, typename SocketHandle::template IsCompatible::type * = 0); +# else + ClientSocketHandle(ClientSocketHandle other); +# endif +# ifndef DOXYGEN template typename SocketHandle::template IsCompatible::type const & operator=(ClientSocketHandle other); +# else + template + OtherPolicy const & operator=(ClientSocketHandle other); +# endif ///@} /////////////////////////////////////////////////////////////////////////// @@ -172,6 +179,11 @@ namespace senf { */ std::string read (unsigned limit=0); template +# ifndef DOXYGEN + typename boost::range_iterator::type + read (ForwardWritableRange const & range, + typename boost::disable_if< boost::is_convertible >::type * = 0); +# else typename boost::range_iterator::type read (ForwardWritableRange const & range); ///< Read data into range @@ -186,6 +198,13 @@ namespace senf { last read character \see \ref read() \n Boost.Range */ +# endif +# ifndef DOXYGEN + template + typename boost::range_iterator::type + read (ForwardWritableRange & range, + typename boost::disable_if< boost::is_convertible >::type * = 0); +# else template typename boost::range_iterator::type read (ForwardWritableRange & range); @@ -193,6 +212,7 @@ namespace senf { /**< \see read(ForwardWritableRange const &) \n read() \n Boost.Range */ +# endif template void read (Sequence & container, unsigned limit); ///< Read data into container