UDPSocketHandle.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_UDPSocketHandle_
00031 #define HH_SENF_Socket_Protocols_INet_UDPSocketHandle_ 1
00032
00033
00034 #include "INetAddressing.hh"
00035 #include "UDPSocketProtocol.hh"
00036 #include "MulticastSocketProtocol.hh"
00037 #include <senf/Socket/Protocols/BSDSocketProtocol.hh>
00038 #include <senf/Socket/Protocols/DatagramSocketProtocol.hh>
00039 #include <senf/Socket/FramingPolicy.hh>
00040 #include <senf/Socket/CommunicationPolicy.hh>
00041 #include <senf/Socket/ReadWritePolicy.hh>
00042 #include <senf/Socket/ProtocolClientSocketHandle.hh>
00043
00044
00045
00046
00047 namespace senf {
00048
00050
00051
00052 typedef MakeSocketPolicy<
00053 INet4AddressingPolicy,
00054 DatagramFramingPolicy,
00055 UnconnectedCommunicationPolicy,
00056 ReadablePolicy,
00057 WriteablePolicy
00058 >::policy UDPv4Socket_Policy;
00059
00080 class UDPv4SocketProtocol
00081 : public ConcreteSocketProtocol<UDPv4Socket_Policy, UDPv4SocketProtocol>,
00082 public UDPSocketProtocol,
00083 public INet4MulticastSocketProtocol,
00084 public BSDSocketProtocol,
00085 public DatagramSocketProtocol,
00086 public AddressableBSDSocketProtocol
00087 {
00088 public:
00089
00090
00091
00093
00094
00095 void init_client() const;
00096
00099 void init_client(INet4SocketAddress const & address) const;
00101
00108
00109
00110 };
00111
00112 typedef ProtocolClientSocketHandle<UDPv4SocketProtocol> UDPv4ClientSocketHandle;
00113
00114 typedef MakeSocketPolicy<
00115 UDPv4Socket_Policy,
00116 INet6AddressingPolicy
00117 >::policy UDPv6Socket_Policy;
00118
00139 class UDPv6SocketProtocol
00140 : public ConcreteSocketProtocol<UDPv6Socket_Policy, UDPv6SocketProtocol>,
00141 public UDPSocketProtocol,
00142 public INet6MulticastSocketProtocol,
00143 public BSDSocketProtocol,
00144 public DatagramSocketProtocol,
00145 public AddressableBSDSocketProtocol
00146 {
00147 public:
00148
00149
00150
00152
00153
00154 void init_client() const;
00155
00158 void init_client(INet6SocketAddress const & address) const;
00160
00167
00168 };
00169
00170 typedef ProtocolClientSocketHandle<UDPv6SocketProtocol> UDPv6ClientSocketHandle;
00171
00172
00173
00174 }
00175
00176
00177
00178
00179
00180 #endif
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191