// $Id$
//
// Copyright (C) 2006
-// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
#define HH_TCPSocketHandle_ 1
// Custom includes
-#include "../../../Utils/pool_alloc_mixin.hh"
-#include "INetProtocol.hh"
-#include "TCPProtocol.hh"
+#include "INetSocketProtocol.hh"
+#include "TCPSocketProtocol.hh"
#include "../../../Socket/Protocols/BSDSocketProtocol.hh"
#include "../../../Socket/FramingPolicy.hh"
#include "../../../Socket/CommunicationPolicy.hh"
#include "../../../Socket/ReadWritePolicy.hh"
-#include "../../../Socket/BufferingPolicy.hh"
#include "../../../Socket/ProtocolClientSocketHandle.hh"
#include "../../../Socket/ProtocolServerSocketHandle.hh"
StreamFramingPolicy,
ConnectedCommunicationPolicy,
ReadablePolicy,
- WriteablePolicy,
- SocketBufferingPolicy
+ WriteablePolicy
>::policy TCPv4Socket_Policy; ///< Socket Policy of the TCPv4 Protocol
/** \brief IPv4 TCP Socket Protocol
\par Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::write(), ClientSocketHandle::bind(),
- ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer(),
- ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+ ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer()
\par Address Type:
- INet4Address
+ INet4SocketAddress
TCPv4SocketProtocol provides an internet protocol stream socket based on the TCP protocol
and IPv4 addressing.
\see TCPv6SocketProtocol
*/
class TCPv4SocketProtocol
- : public ConcreteSocketProtocol<TCPv4Socket_Policy>,
- public IPv4Protocol,
- public TCPProtocol,
+ : public ConcreteSocketProtocol<TCPv4Socket_Policy,TCPv4SocketProtocol>,
+ public TCPSocketProtocol,
public BSDSocketProtocol,
- public AddressableBSDSocketProtocol,
- public senf::pool_alloc_mixin<TCPv4SocketProtocol>
+ public AddressableBSDSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
constructor */
///@}
- ///\name Abstract Interface Implementation
-
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<TCPv4SocketProtocol> TCPv4ClientSocketHandle;
\par Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::write(), ClientSocketHandle::bind(),
- ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer(),
- ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+ ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer()
\par Address Type:
- INet6Address
+ INet6Address
TCPv6SocketProtocol provides an internet protocol stream socket based on the TCP protocol
and IPv6 addressing.
\see TCPv4SocketProtocol
*/
class TCPv6SocketProtocol
- : public ConcreteSocketProtocol<TCPv6Socket_Policy>,
- public IPv6Protocol,
- public TCPProtocol,
+ : public ConcreteSocketProtocol<TCPv6Socket_Policy,TCPv6SocketProtocol>,
+ public TCPSocketProtocol,
public BSDSocketProtocol,
- public AddressableBSDSocketProtocol,
- public senf::pool_alloc_mixin<TCPv6SocketProtocol>
+ public AddressableBSDSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
constructor */
///@}
- ///\name Abstract Interface Implementation
-
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<TCPv6SocketProtocol> TCPv6ClientSocketHandle;