// $Id: RawINetSocketHandle.hh 597 2008-01-15 09:16:20Z g0dil $
//
-// Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// David Wagner <dw6@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
// Custom includes
-#include "INetProtocol.hh"
-#include "RawINetProtocol.hh"
-#include "MulticastProtocol.hh"
+#include "INetSocketProtocol.hh"
+#include "RawINetSocketProtocol.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"
\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
RawV4SocketProtocol provides an internet protocol raw socket based on IPv4 addressing.
This socket will put data written to it onto the IPv4 layer: if you call writeto don't inlude the header!
\see RawV6SocketProtocol
*/
class RawV4SocketProtocol
- : public ConcreteSocketProtocol<RawV4Socket_Policy>,
- public IPv4Protocol,
- public RawINetProtocol,
+ : public ConcreteSocketProtocol<RawV4Socket_Policy, RawV4SocketProtocol>,
+ public RawINetSocketProtocol,
public BSDSocketProtocol,
public AddressableBSDSocketProtocol,
- public MulticastProtocol,
- public INet4MulticastProtocol,
- public senf::pool_alloc_mixin<RawV4SocketProtocol>
+ public DatagramSocketProtocol,
+ public MulticastSocketProtocol,
+ public INet4MulticastSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
\param[in] address local address to bind to */
///@}
- ///\name Abstract Interface Implementation
-
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<RawV4SocketProtocol> RawV4ClientSocketHandle;
\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 RawV4SocketProtocol
*/
class RawV6SocketProtocol
- : public ConcreteSocketProtocol<RawV6Socket_Policy>,
- public IPv6Protocol,
- public RawINetProtocol,
+ : public ConcreteSocketProtocol<RawV6Socket_Policy,RawV6SocketProtocol>,
+ public RawINetSocketProtocol,
public BSDSocketProtocol,
public AddressableBSDSocketProtocol,
- public MulticastProtocol,
- public INet4MulticastProtocol,
- public senf::pool_alloc_mixin<RawV6SocketProtocol>
+ public DatagramSocketProtocol,
+ public MulticastSocketProtocol,
+ public INet6MulticastSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
constructor */
///@}
- ///\name Abstract Interface Implementation
-
- std::auto_ptr<SocketProtocol> clone() const;
-
- ///@}
};
typedef ProtocolClientSocketHandle<RawV6SocketProtocol> RawV6ClientSocketHandle;