senf::ConnectedMMapPacketSocketProtocol< P1, P2 > Class Template Reference

Raw Packet-Socket access using mmap read/write (Linux) More...

#include <senf/Socket/Protocols/Raw/MMapPacketSocketHandle.hh>

Inheritance diagram for senf::ConnectedMMapPacketSocketProtocol< P1, P2 >:

Public Types

typedef MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy Policy
 
typedef detail::ConnectedMMapPacketSocketProtocol_Bases< typename MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policyBase
 
- Public Types inherited from senf::ConcreteSocketProtocol< MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy, ConnectedMMapPacketSocketProtocol< P1, P2 > >
typedef MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy Policy
 The protocols policy. More...
 

Additional Inherited Members

- Public Member Functions inherited from senf::ConcreteSocketProtocol< MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy, ConnectedMMapPacketSocketProtocol< P1, P2 > >
Policy const & policy () const
 Access the policy instance. More...
 
 ~ConcreteSocketProtocol ()=0
 
- Public Member Functions inherited from senf::SocketProtocol
virtual unsigned available () const =0
 Return (maximum) number of bytes available for reading without < blocking. More...
 
virtual bool eof () const =0
 Check for end-of-file condition. More...
 
virtual void close ()
 Close socket. More...
 
virtual void terminate () const
 Forcibly close socket. More...
 
virtual void state (SocketStateMap &map, unsigned lod) const
 Return socket state information. More...
 
int fd () const
 Get file descriptor. More...
 
 SocketProtocol ()
 
virtual ~SocketProtocol ()=0
 
- Protected Member Functions inherited from senf::ConcreteSocketProtocol< MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy, ConnectedMMapPacketSocketProtocol< P1, P2 > >
ClientSocketHandle< PolicyclientHandle () const
 Get client handle for associated socket. More...
 
ServerSocketHandle< PolicyserverHandle () const
 Get server handle for associated socket. More...
 
- Protected Member Functions inherited from senf::SocketProtocol
FileHandle fh () const
 Get a FileHandle for this instance. More...
 
void fd (int) const
 Initialize file descriptor. More...
 

Detailed Description

template<class P1 = mpl::nil, class P2 = mpl::nil>
class senf::ConnectedMMapPacketSocketProtocol< P1, P2 >

Raw Packet-Socket access using mmap read/write (Linux)

Socket Handle typedefs:
ConnectedMMapPacketSocketHandle (ProtocolClientSocketHandle)
Policy Interface:
ClientSocketHandle::dequeue(), ClientSocketHandle::enqueue(), ClientSocketHandle::bind(), ClientSocketHandle::local()
Address Type:
LLSocketAddress

The PacketSocketProtocol provides access to the linux packet socket API. This API gives access to the low level network packets. The packet socket allows read() and write() operations. The PacketSocketProtocol has no concept of a server socket.

This class is utilized as the protocol class of the ProtocolClientSocketHandle via the Socket Handle typedefs above.

This protocol uses the linux mmap packet socket access API. This API replaces the ordinary read/write calls with a linux specific api.

Warning
The socket handle is neither readable nor writable in the ordinary sense. It utilises the special QueueReadPolicy and QueueWritePolicy socket policies.

Definition at line 78 of file MMapPacketSocketHandle.hh.

Member Typedef Documentation

◆ Base

template<class P1 = mpl::nil, class P2 = mpl::nil>
typedef detail::ConnectedMMapPacketSocketProtocol_Bases< typename MakeSocketPolicy<ConnectedMMapPacket_Policy, P1, P2>::policy> senf::ConnectedMMapPacketSocketProtocol< P1, P2 >::Base

Definition at line 88 of file MMapPacketSocketHandle.hh.

◆ Policy

template<class P1 = mpl::nil, class P2 = mpl::nil>
typedef MakeSocketPolicy<ConnectedMMapPacket_Policy, P1, P2>::policy senf::ConnectedMMapPacketSocketProtocol< P1, P2 >::Policy

Definition at line 86 of file MMapPacketSocketHandle.hh.


The documentation for this class was generated from the following file: