X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FUDPSocketHandle.hh;h=6ed334c625937149e09ba7e490580fd25f283c5b;hb=6f50bf49e282c0528f51faa0a245bbfa2b867399;hp=ae1df0fb3deaae0e351fe5cb1d16c7ffb16e9d72;hpb=81ffa1c459b96dd44472bcef37e1e373934ee138;p=senf.git diff --git a/Socket/Protocols/INet/UDPSocketHandle.hh b/Socket/Protocols/INet/UDPSocketHandle.hh index ae1df0f..6ed334c 100644 --- a/Socket/Protocols/INet/UDPSocketHandle.hh +++ b/Socket/Protocols/INet/UDPSocketHandle.hh @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // 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 @@ -33,12 +33,13 @@ // Custom includes #include "INetProtocol.hh" #include "UDPProtocol.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 "MulticastProtocol.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/ProtocolClientSocketHandle.hh" //#include "UDPSocketHandle.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -53,8 +54,7 @@ namespace senf { DatagramFramingPolicy, UnconnectedCommunicationPolicy, ReadablePolicy, - WriteablePolicy, - SocketBufferingPolicy + WriteablePolicy >::policy UDPv4Socket_Policy; ///< Socket Policy of the UDPv4 Protocol /** \brief IPv4 UDP Socket Protocol @@ -79,12 +79,14 @@ namespace senf { \see UDPv6SocketProtocol */ class UDPv4SocketProtocol - : public ConcreteSocketProtocol, + : public ConcreteSocketProtocol, public IPv4Protocol, public UDPProtocol, + public MulticastProtocol, + public INet4MulticastProtocol, public BSDSocketProtocol, - public AddressableBSDSocketProtocol, - public senf::pool_alloc_mixin + public DatagramSocketProtocol, + public AddressableBSDSocketProtocol { public: /////////////////////////////////////////////////////////////////////////// @@ -98,21 +100,16 @@ namespace senf { ProtocolClientSocketHandle::ProtocolClientSocketHandle() constructor */ void init_client(INet4SocketAddress const & address) const; - ///< Create client socket and connect - /**< Creates a new client socket and connects to the given + ///< Create client socket and bind + /**< Creates a new client socket and bind to the given address. - - \param[in] address remote address to connect to */ + \param[in] address local address to bind to */ /**< \note This member is implicitly called from the - ProtocolClientSocketHandle::ProtocolClientSocketHandle() + ProtocolClientSocketHandle::ProtocolClientSocketHandle() constructor */ ///@} - ///\name Abstract Interface Implementation - std::auto_ptr clone() const; - - ///@} }; typedef ProtocolClientSocketHandle UDPv4ClientSocketHandle; @@ -144,12 +141,14 @@ namespace senf { \see UDPv4SocketProtocol */ class UDPv6SocketProtocol - : public ConcreteSocketProtocol, + : public ConcreteSocketProtocol, public IPv6Protocol, public UDPProtocol, + public MulticastProtocol, + public INet6MulticastProtocol, public BSDSocketProtocol, - public AddressableBSDSocketProtocol, - public senf::pool_alloc_mixin + public DatagramSocketProtocol, + public AddressableBSDSocketProtocol { public: /////////////////////////////////////////////////////////////////////////// @@ -164,20 +163,14 @@ namespace senf { constructor */ void init_client(INet6SocketAddress const & address) const; ///< Create client socket and connect - /**< Creates a new client socket and connects to the given + /**< Creates a new client socket and bind to the given address. - - \param[in] address remote address to connect to */ + \param[in] address local address to bind to */ /**< \note This member is implicitly called from the ProtocolClientSocketHandle::ProtocolClientSocketHandle() constructor */ ///@} - ///\name Abstract Interface Implementation - - std::auto_ptr clone() const; - - ///@} }; typedef ProtocolClientSocketHandle UDPv6ClientSocketHandle;