// $Id$
//
// Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-// Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// 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
// it under the terms of the GNU General Public License as published by
#define HH_UDPSocketHandle_ 1
// Custom includes
-#include "INetProtocol.hh"
-#include "UDPProtocol.hh"
+#include "INetSocketProtocol.hh"
+#include "UDPSocketProtocol.hh"
+#include "MulticastSocketProtocol.hh"
#include "../../../Socket/Protocols/BSDSocketProtocol.hh"
+#include "../../../Socket/Protocols/DatagramSocketProtocol.hh"
#include "../../../Socket/FramingPolicy.hh"
#include "../../../Socket/CommunicationPolicy.hh"
#include "../../../Socket/ReadWritePolicy.hh"
-#include "../../../Socket/BufferingPolicy.hh"
#include "../../../Socket/ProtocolClientSocketHandle.hh"
//#include "UDPSocketHandle.mpp"
DatagramFramingPolicy,
UnconnectedCommunicationPolicy,
ReadablePolicy,
- WriteablePolicy,
- SocketBufferingPolicy
+ WriteablePolicy
>::policy UDPv4Socket_Policy; ///< Socket Policy of the UDPv4 Protocol
/** \brief IPv4 UDP Socket Protocol
\par Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
- ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
- ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+ ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
\par Address Type:
- INet4Address
+ INet4SocketAddress
UDPv4SocketProtocol provides an internet protocol stream socket based on the UDP protocol
and IPv4 addressing.
\see UDPv6SocketProtocol
*/
class UDPv4SocketProtocol
- : public ConcreteSocketProtocol<UDPv4Socket_Policy>,
- public IPv4Protocol,
- public UDPProtocol,
+ : public ConcreteSocketProtocol<UDPv4Socket_Policy, UDPv4SocketProtocol>,
+ public UDPSocketProtocol,
+ public MulticastSocketProtocol,
+ public INet4MulticastSocketProtocol,
public BSDSocketProtocol,
- public AddressableBSDSocketProtocol,
- public senf::pool_alloc_mixin<UDPv4SocketProtocol>
+ public DatagramSocketProtocol,
+ public AddressableBSDSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
constructor */
///@}
- ///\name Abstract Interface Implementation
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<UDPv4SocketProtocol> UDPv4ClientSocketHandle;
\par Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
- ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
- ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+ ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
\par Address Type:
INet6Address
\see UDPv4SocketProtocol
*/
class UDPv6SocketProtocol
- : public ConcreteSocketProtocol<UDPv6Socket_Policy>,
- public IPv6Protocol,
- public UDPProtocol,
+ : public ConcreteSocketProtocol<UDPv6Socket_Policy, UDPv6SocketProtocol>,
+ public UDPSocketProtocol,
+ public MulticastSocketProtocol,
+ public INet6MulticastSocketProtocol,
public BSDSocketProtocol,
- public AddressableBSDSocketProtocol,
- public senf::pool_alloc_mixin<UDPv6SocketProtocol>
+ public DatagramSocketProtocol,
+ public AddressableBSDSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
constructor */
///@}
- ///\name Abstract Interface Implementation
-
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<UDPv6SocketProtocol> UDPv6ClientSocketHandle;