ConnectedUDPSocketHandle.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 
21 #ifndef HH_SENF_Socket_Protocols_INet_ConnectedUDPSocketHandle_
22 #define HH_SENF_Socket_Protocols_INet_ConnectedUDPSocketHandle_ 1
23 
24 // Custom includes
25 #include "INetAddressing.hh"
26 #include "UDPSocketProtocol.hh"
33 
34 //#include "ConnectedUDPSocketHandle.mpp"
35 //-/////////////////////////////////////////////////////////////////////////////////////////////////
36 
37 namespace senf {
38 
40  //\{
41 
42  typedef MakeSocketPolicy<
43  INet4AddressingPolicy,
44  DatagramFramingPolicy,
45  ConnectedCommunicationPolicy,
46  ReadablePolicy,
47  WriteablePolicy
49 
71  : public ConcreteSocketProtocol<ConnectedUDPv4Socket_Policy, ConnectedUDPv4SocketProtocol>,
72  public UDPSocketProtocol,
73  public BSDSocketProtocol,
76  {
77  public:
78  //-////////////////////////////////////////////////////////////////////////
79  // internal interface
80 
82  //\{
83 
84  void init_client() const;
85 
88  void init_client(INet4SocketAddress const & address) const;
90 
98  //\}
99  };
100 
103 
104  typedef MakeSocketPolicy<
108 
130  : public ConcreteSocketProtocol<ConnectedUDPv6Socket_Policy, ConnectedUDPv6SocketProtocol>,
131  public UDPSocketProtocol,
132  public BSDSocketProtocol,
133  public DatagramSocketProtocol,
135  {
136  public:
137  //-////////////////////////////////////////////////////////////////////////
138  // internal interface
139 
141  //\{
142 
143  void init_client() const;
144 
147  void init_client(INet6SocketAddress const & address) const;
149 
157  //\}
158  };
159 
162 
163  //\}
164 
165 }
166 
167 //-/////////////////////////////////////////////////////////////////////////////////////////////////
168 //#include "ConnectedUDPSocketHandle.cci"
169 //#include "ConnectedUDPSocketHandle.ct"
170 //#include "ConnectedUDPSocketHandle.cti"
171 #endif
172 
173 
174 // Local Variables:
175 // mode: c++
176 // fill-column: 100
177 // c-file-style: "senf"
178 // indent-tabs-mode: nil
179 // ispell-local-dictionary: "american"
180 // compile-command: "scons -u test"
181 // comment-column: 40
182 // End:
Addressing policy supporting IPv6 addressing.
CommunicationPolicy public header.
ProtocolClientSocketHandle< ConnectedUDPv6SocketProtocol > ConnectedUDPv6ClientSocketHandle
MakeSocketPolicy< INet4AddressingPolicy, DatagramFramingPolicy, ConnectedCommunicationPolicy, ReadablePolicy, WriteablePolicy >::policy ConnectedUDPv4Socket_Policy
Socket Policy of the UDPv4 Protocol.
IPv6 socket address.
MakeSocketPolicy< ConnectedUDPv4Socket_Policy, INet6AddressingPolicy >::policy ConnectedUDPv6Socket_Policy
ProtocolClientSocketHandle public header.
IPv4 socket address.
ProtocolClientSocketHandle< ConnectedUDPv4SocketProtocol > ConnectedUDPv4ClientSocketHandle
DatagramSocketProtocol public header.
ReadPolicy and WritePolicy public header.
Protocol facet providing basic BSD socket functionality.
Protocol facet providing basic connection oriented BSD socket functions.
UDPSocketProtocol public header.
Protocol specific socket handle (client interface)
BSDSocketProtocol public header.
Concrete Socket Protocol implementation base class.
INet[46]Address and INet[46]AddressingPolicy public header.
FramingPolicy public header.
Protocol facet to support UDP operations.
IPv6 UDP Socket Protocol, connected.
IPv4 UDP Socket Protocol, connected.
void init_client() const
Create unconnected client socket.
Metafunction to create SocketPolicy.
Protocol facet providing generic BSD datagram socket functionality.