MMapPacketSocketHandle.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
18 #ifndef HH_SENF_Socket_Protocols_Raw_MMapPacketSocketHandle_
19 #define HH_SENF_Socket_Protocols_Raw_MMapPacketSocketHandle_ 1
20 
21 // Custom includes
31 #include "MMapSocketProtocol.hh"
33 #include "LLAddressing.hh"
34 
35 //#include "MMapPacketSocketHandle.mpp"
37 //-/////////////////////////////////////////////////////////////////////////////////////////////////
38 
39 namespace senf {
40 
42  //\{
43 
44  typedef MakeSocketPolicy<
45  LLAddressingPolicy,
46  DatagramFramingPolicy,
47  ConnectedCommunicationPolicy,
48  ReadablePolicy,
49  WriteablePolicy
51 
77  template <class P1=mpl::nil, class P2=mpl::nil>
79  : public ConcreteSocketProtocol<
80  typename MakeSocketPolicy<ConnectedMMapPacket_Policy, P1, P2>::policy,
81  ConnectedMMapPacketSocketProtocol<P1, P2> >,
82  public detail::ConnectedMMapPacketSocketProtocol_Bases<
83  typename MakeSocketPolicy<ConnectedMMapPacket_Policy, P1, P2>::policy>
84  {
85  public:
87  typedef typename detail::ConnectedMMapPacketSocketProtocol_Bases<
89 
90  private:
91  };
92 
97 
99  typedef ProtocolClientSocketHandle<
100  ConnectedMMapPacketSocketProtocol<QueueReadPolicy> >
103 
105  typedef ProtocolClientSocketHandle<
106  ConnectedMMapPacketSocketProtocol<QueueWritePolicy> >
109 
111  typedef ProtocolClientSocketHandle<
112  ConnectedMMapPacketSocketProtocol<> >
115 
117  //\}
118 }
119 
120 //-/////////////////////////////////////////////////////////////////////////////////////////////////
121 //#include "MMapPacketSocketHandle.cci"
122 #include "MMapPacketSocketHandle.ct"
123 //#include "MMapPacketSocketHandle.cti"
124 //#include "MMapPacketSocketHandle.mpp"
125 #endif
126 
127 
128 // Local Variables:
129 // mode: c++
130 // fill-column: 100
131 // c-file-style: "senf"
132 // indent-tabs-mode: nil
133 // ispell-local-dictionary: "american"
134 // compile-command: "scons -u test"
135 // comment-column: 40
136 // End:
detail::ConnectedMMapPacketSocketProtocol_Bases< typename MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy > Base
CommunicationPolicy public header.
ProtocolClientSocketHandle< ConnectedMMapPacketSocketProtocol< QueueWritePolicy > > ConnectedMMapWritePacketSocketHandle
SocketHandle of the ConnectedMMapPacketSocketProtocol.
QueueReadWritePolicy public header.
Policy Framework public header.
ProtocolClientSocketHandle public header.
DatagramSocketProtocol public header.
ReadPolicy and WritePolicy public header.
LLSocketAddress and LLAddressingPolicy public header.
ProtocolClientSocketHandle< ConnectedMMapPacketSocketProtocol<> > ConnectedPacketSocketHandle
SocketHandle of the ConnectedMMapPacketSocketProtocol.
MakeSocketPolicy< ConnectedMMapPacket_Policy, P1, P2 >::policy Policy
Protocol specific socket handle (client interface)
ProtocolClientSocketHandle< ConnectedMMapPacketSocketProtocol< QueueReadPolicy > > ConnectedMMapReadPacketSocketHandle
SocketHandle of the ConnectedMMapPacketSocketProtocol.
BSDSocketProtocol public header.
LinuxPacketSocketProtocol public header.
MakeSocketPolicy< LLAddressingPolicy, DatagramFramingPolicy, ConnectedCommunicationPolicy, ReadablePolicy, WriteablePolicy >::policy ConnectedMMapPacket_Policy
Policy of ConnectedMMapPacketSocketProtocol.
Concrete Socket Protocol implementation base class.
ProtocolClientSocketHandle< ConnectedMMapPacketSocketProtocol< QueueReadPolicy, QueueWritePolicy > > ConnectedMMapPacketSocketHandle
SocketHandle of the ConnectedMMapPacketSocketProtocol.
SocketProtocol and ConcreteSocketProtocol public header.
MMapSocketProtocol public header.
FramingPolicy public header.
Raw Packet-Socket access using mmap read/write (Linux)
Metafunction to create SocketPolicy.