ConnectedUDPSocketHandle.hh
Go to the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00030 #ifndef HH_SENF_Socket_Protocols_INet_ConnectedUDPSocketHandle_
00031 #define HH_SENF_Socket_Protocols_INet_ConnectedUDPSocketHandle_ 1
00032
00033
00034 #include "INetAddressing.hh"
00035 #include "UDPSocketProtocol.hh"
00036 #include <senf/Socket/Protocols/BSDSocketProtocol.hh>
00037 #include <senf/Socket/Protocols/DatagramSocketProtocol.hh>
00038 #include <senf/Socket/FramingPolicy.hh>
00039 #include <senf/Socket/CommunicationPolicy.hh>
00040 #include <senf/Socket/ReadWritePolicy.hh>
00041 #include <senf/Socket/ProtocolClientSocketHandle.hh>
00042
00043
00044
00045
00046 namespace senf {
00047
00049
00050
00051 typedef MakeSocketPolicy<
00052 INet4AddressingPolicy,
00053 DatagramFramingPolicy,
00054 ConnectedCommunicationPolicy,
00055 ReadablePolicy,
00056 WriteablePolicy
00057 >::policy ConnectedUDPv4Socket_Policy;
00058
00079 class ConnectedUDPv4SocketProtocol
00080 : public ConcreteSocketProtocol<ConnectedUDPv4Socket_Policy, ConnectedUDPv4SocketProtocol>,
00081 public UDPSocketProtocol,
00082 public BSDSocketProtocol,
00083 public DatagramSocketProtocol,
00084 public AddressableBSDSocketProtocol
00085 {
00086 public:
00087
00088
00089
00091
00092
00093 void init_client() const;
00094
00097 void init_client(INet4SocketAddress const & address) const;
00099
00107
00108 };
00109
00110 typedef ProtocolClientSocketHandle<
00111 ConnectedUDPv4SocketProtocol> ConnectedUDPv4ClientSocketHandle;
00112
00113 typedef MakeSocketPolicy<
00114 ConnectedUDPv4Socket_Policy,
00115 INet6AddressingPolicy
00116 >::policy ConnectedUDPv6Socket_Policy;
00117
00138 class ConnectedUDPv6SocketProtocol
00139 : public ConcreteSocketProtocol<ConnectedUDPv6Socket_Policy, ConnectedUDPv6SocketProtocol>,
00140 public UDPSocketProtocol,
00141 public BSDSocketProtocol,
00142 public DatagramSocketProtocol,
00143 public AddressableBSDSocketProtocol
00144 {
00145 public:
00146
00147
00148
00150
00151
00152 void init_client() const;
00153
00156 void init_client(INet6SocketAddress const & address) const;
00158
00166
00167 };
00168
00169 typedef ProtocolClientSocketHandle<
00170 ConnectedUDPv6SocketProtocol> ConnectedUDPv6ClientSocketHandle;
00171
00172
00173
00174 }
00175
00176
00177
00178
00179
00180 #endif
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191