MulticastSocketProtocol.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
00026 #ifndef HH_SENF_Socket_Protocols_INet_MulticastSocketProtocol_
00027 #define HH_SENF_Socket_Protocols_INet_MulticastSocketProtocol_ 1
00028
00029
00030 #include <senf/Socket/SocketProtocol.hh>
00031 #include "INet4Address.hh"
00032 #include "INet6Address.hh"
00033
00034
00035
00036
00037 namespace senf {
00038
00040
00041
00047 class MulticastSocketProtocol
00048 : public virtual SocketProtocol
00049 {
00050 public:
00051 void broadcastEnabled(bool v) const;
00052
00058 bool broadcastEnabled() const;
00059
00063 unsigned mcTTL() const;
00064 void mcTTL(unsigned value) const;
00065
00066 bool mcLoop() const;
00067 void mcLoop(bool value) const;
00068
00072 void mcIface(std::string const & iface = std::string()) const;
00074
00079 };
00080
00083 class INet4MulticastSocketProtocol
00084 : public MulticastSocketProtocol
00085 {
00086 public:
00087 void mcAddMembership(INet4Address const & mcAddr) const;
00089
00093 void mcAddMembership(INet4Address const & mcAddr, INet4Address const & localAddr) const;
00095
00102 void mcAddMembership(INet4Address const & mcAddr, std::string const & iface) const;
00104
00110 void mcDropMembership(INet4Address const & mcAddr) const;
00112
00116 void mcDropMembership(INet4Address const & mcAddr, INet4Address const & localAddr)
00117 const;
00119
00127 void mcDropMembership(INet4Address const & mcAddr, std::string const & iface)
00128 const;
00130
00136 void mcJoinSSMSource(INet4Address const & group, INet4Address const & source,
00137 std::string const & iface) const;
00139
00146 void mcLeaveSSMSource(INet4Address const & group, INet4Address const & source,
00147 std::string const & iface) const;
00149
00155 };
00156
00162 class INet6MulticastSocketProtocol
00163 : public MulticastSocketProtocol
00164 {
00165 public:
00166 void mcAddMembership(INet6Address const & mcAddr) const;
00168
00172 void mcAddMembership(INet6Address const & mcAddr, std::string const & iface) const;
00174
00180 void mcDropMembership(INet6Address const & mcAddr) const;
00182
00186 void mcDropMembership(INet6Address const & mcAddr, std::string const & iface) const;
00188
00194 void mcJoinSSMSource(INet6Address const & group, INet6Address const & source,
00195 std::string const & iface) const;
00197
00205 void mcJoinSSMSource(INet6Address const & group, INet6Address const & source,
00206 int ifacei = 0) const;
00208
00216 void mcLeaveSSMSource(INet6Address const & group, INet6Address const & source,
00217 std::string const & iface) const;
00219
00225 };
00226
00227
00228 }
00229
00230
00231
00232
00233
00234 #endif
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245