#include "SocketHandle.hh"
//#include "ClientSocketHandle.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
namespace senf {
/// \addtogroup handle_group
- /// @{
+ //\{
template <class SPolicy> class ServerSocketHandle;
This class provides the client side policy interface of the socket
abstraction. ClientSocketHandle defines the complete policy interface. It does not implement
any functionality itself however. The following table shows, to which policy members each
- group of ClientSocketHandle members is forwardd. The last collumn shows, on which other
+ group of ClientSocketHandle members is forwarded. The last column shows, on which other
policies this member-group depends <em>in the default policy classes</em>. If you define
your own policy classes, the dependencies are up to you.
\idea Give SocketHandle (and therefore ClientSocketHandle and ServerSocketHandle) a \c
protocol() template member and an additional template arg \c Policies. This arg should be a
- typelist of Poclicy classes which can be accessed. You use protocol<ProtocolClass>() to
+ typelist of policy classes which can be accessed. You use protocol<ProtocolClass>() to
access a protocol class. \c Policies can of course be underspecified or even empty.
\see \ref policy_group \n
: public SocketHandle<SPolicy>
{
public:
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Types
/// Address type from the addressing policy
/// 'Best' type for passing address as parameter
/** Depending on the type of \c Address, this will be either <tt>Address</tt> or <tt>Address
const &</tt>. See <a
- href="http://www.boost.org/libs/utility/call_traits.htm">call_traits documentation in
+ href="http://www.boost.org/doc/libs/release/libs/utility/call_traits.htm">call_traits documentation in
the Boost.Utility library.</a>
*/
typedef typename boost::call_traits<Address>::param_type AddressParam;
NoAddressingPolicy. */
typedef ServerSocketHandle<SPolicy> ServerHandle;
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Structors and default members
- ///@{
+ //\{
// default default constructor
// default copy constructor
ClientSocketHandle<OtherPolicy> const & operator=(ClientSocketHandle<OtherPolicy> other);
# endif
- ///@}
- ///////////////////////////////////////////////////////////////////////////
+ //\}
+ //-////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Reading and Writing
- ///@{
+ //\{
/** \brief Read data from socket
\returns past-the-end iterator pointer to after the
last read character
\see \ref read() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
# endif
# ifndef DOXYGEN
template <class ForwardWritableRange>
///< Read data into range
/**< \see read(ForwardWritableRange const &) \n
read() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
# endif
template <class Sequence>
void read (Sequence & container, unsigned limit);
\returns past-the-end iterator pointer to after the
last read character
\see \ref readfrom() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
template <class ForwardWritableRange>
typename boost::range_iterator<ForwardWritableRange>::type
readfrom (ForwardWritableRange & range, Address & from);
///< Read data into range
/**< \see readfrom(ForwardWritableRange const&,Address&) \n
readfrom() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
template <class Sequence>
void readfrom (Sequence & container, Address & from, unsigned limit);
///< Read data into container
\param[in] end past-the-end pointer to area to write
\returns past-the-end pointer after last byte written
\see \ref write() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
/** \brief Write data to unconnected socket
\param[in] end past-the-end pointer after data to write
\returns past-the-end iterator after last byte written
\see \ref writeto() \n
- <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+ <a href="http://www.boost.org/doc/libs/release/libs/range/index.html">Boost.Range</a> */
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Addressing
- ///@{
+ //\{
/** \brief Connect to remote peer
///< Query local address
/**< \see \ref local() */
- ///@}
+ //\}
static ClientSocketHandle cast_static(FileHandle handle);
static ClientSocketHandle cast_dynamic(FileHandle handle);
friend class senf::ServerSocketHandle<SPolicy>;
};
- /// @}
+ //\}
}
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
//#include "ClientSocketHandle.cci"
#include "ClientSocketHandle.ct"
#include "ClientSocketHandle.cti"