\section{KNetwork::KMulticast\-Socket\-Impl Class Reference}
\label{classKNetwork_1_1KMulticastSocketImpl}\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticastSocketImpl}}
The low-level backend for multicasting sockets.  


{\tt \#include $<$kmulticastsocketdevice.h$>$}

Inheritance diagram for KNetwork::KMulticast\-Socket\-Impl:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=183pt]{classKNetwork_1_1KMulticastSocketImpl__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for KNetwork::KMulticast\-Socket\-Impl:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=183pt]{classKNetwork_1_1KMulticastSocketImpl__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf KMulticast\-Socket\-Impl} (const {\bf KSocket\-Base} $\ast$=0L)
\item 
virtual {\bf $\sim$KMulticast\-Socket\-Impl} ()
\item 
virtual int {\bf capabilities} () const 
\item 
virtual bool {\bf create} (int family, int type, int protocol)
\item 
virtual bool {\bf connect} (const {\bf KResolver\-Entry} \&address)
\item 
virtual int {\bf time\-To\-Live} () const 
\item 
virtual bool {\bf set\-Time\-To\-Live} (int ttl)
\item 
virtual bool {\bf multicast\-Loop} () const 
\item 
virtual bool {\bf set\-Multicast\-Loop} (bool enable)
\item 
virtual {\bf KNetwork\-Interface} {\bf network\-Interface} ()
\item 
virtual bool {\bf set\-Network\-Interface} (const {\bf KNetwork\-Interface} \&iface)
\item 
virtual bool {\bf join\-Group} (const {\bf KSocket\-Address} \&group)
\item 
virtual bool {\bf join\-Group} (const {\bf KSocket\-Address} \&group, const {\bf KNetwork\-Interface} \&iface)
\item 
virtual bool {\bf leave\-Group} (const {\bf KSocket\-Address} \&group)
\item 
virtual bool {\bf leave\-Group} (const {\bf KSocket\-Address} \&group, const {\bf KNetwork\-Interface} \&iface)
\end{CompactItemize}


\subsection{Detailed Description}
The low-level backend for multicasting sockets. 

This class is an interface providing methods for handling multicast operations.

\begin{Desc}
\item[Author:]Thiago Macieira $<${\tt thiago.macieira@kdemail.net}$>$ \end{Desc}




Definition at line 45 of file kmulticastsocketdevice.h.

\subsection{Constructor \& Destructor Documentation}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!KMulticastSocketImpl@{KMulticastSocketImpl}}
\index{KMulticastSocketImpl@{KMulticastSocketImpl}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}KNetwork::KMulticast\-Socket\-Impl::KMulticast\-Socket\-Impl (const {\bf KSocket\-Base} $\ast$ = {\tt 0L})}\label{classKNetwork_1_1KMulticastSocketImpl_a0}


Constructor. 

\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!~KMulticastSocketImpl@{$\sim$KMulticastSocketImpl}}
\index{~KMulticastSocketImpl@{$\sim$KMulticastSocketImpl}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual KNetwork::KMulticast\-Socket\-Impl::$\sim${\bf KMulticast\-Socket\-Impl} ()\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a1}


Destructor. 



\subsection{Member Function Documentation}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!capabilities@{capabilities}}
\index{capabilities@{capabilities}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual int KNetwork::KMulticast\-Socket\-Impl::capabilities () const\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a2}


Sets our capabilities. 



Reimplemented from {\bf KNetwork::KSocket\-Device} {\rm (p.\,\pageref{classKNetwork_1_1KSocketDevice_a4})}.\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!create@{create}}
\index{create@{create}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::create (int {\em family}, int {\em type}, int {\em protocol})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a3}


Overrides the socket creation. 



Reimplemented from {\bf KNetwork::KSocket\-Device} {\rm (p.\,\pageref{classKNetwork_1_1KSocketDevice_a9})}.\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!connect@{connect}}
\index{connect@{connect}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::connect (const {\bf KResolver\-Entry} \& {\em address})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a4}


Overrides connection. 

Multicast sockets may not connect. 

Reimplemented from {\bf KNetwork::KSocket\-Device} {\rm (p.\,\pageref{classKNetwork_1_1KSocketDevice_a13})}.\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!timeToLive@{timeToLive}}
\index{timeToLive@{timeToLive}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual int KNetwork::KMulticast\-Socket\-Impl::time\-To\-Live () const\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a5}


Retrieves the time-to-live/hop count value on multicast packets being sent. 

\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!setTimeToLive@{setTimeToLive}}
\index{setTimeToLive@{setTimeToLive}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::set\-Time\-To\-Live (int {\em ttl})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a6}


Sets the time-to-live/hop count for outgoing multicast packets. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em ttl}]the hop count, from 0 to 255 \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true if setting the value was successful. \end{Desc}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!multicastLoop@{multicastLoop}}
\index{multicastLoop@{multicastLoop}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::multicast\-Loop () const\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a7}


Retrieves the flag indicating if sent packets will be echoed back to sender. 

\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!setMulticastLoop@{setMulticastLoop}}
\index{setMulticastLoop@{setMulticastLoop}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::set\-Multicast\-Loop (bool {\em enable})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a8}


Sets the flag indicating the loopback of packets to the sender. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em enable}]if true, will echo back \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true if setting the value was successful. \end{Desc}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!networkInterface@{networkInterface}}
\index{networkInterface@{networkInterface}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf KNetwork\-Interface} KNetwork::KMulticast\-Socket\-Impl::network\-Interface ()\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a9}


Retrieves the network interface this socket is associated to. 

\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!setNetworkInterface@{setNetworkInterface}}
\index{setNetworkInterface@{setNetworkInterface}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::set\-Network\-Interface (const {\bf KNetwork\-Interface} \& {\em iface})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a10}


Sets the network interface on which this socket should work. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em iface}]the interface to associate with \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true if setting the value was successful. \end{Desc}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!joinGroup@{joinGroup}}
\index{joinGroup@{joinGroup}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::join\-Group (const {\bf KSocket\-Address} \& {\em group})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a11}


Joins a multicast group. 

The group to be joined is identified by the {\tt group} parameter.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]the multicast group to join \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true on success \end{Desc}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!joinGroup@{joinGroup}}
\index{joinGroup@{joinGroup}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::join\-Group (const {\bf KSocket\-Address} \& {\em group}, const {\bf KNetwork\-Interface} \& {\em iface})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a12}


This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Joins a multicast group. This function also specifies the network interface to be used. \index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!leaveGroup@{leaveGroup}}
\index{leaveGroup@{leaveGroup}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::leave\-Group (const {\bf KSocket\-Address} \& {\em group})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a13}


Leaves a multicast group. 

The group being left is given by its address in the {\tt group} parameter.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]the group to leave \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true on successful leaving the group \end{Desc}
\index{KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}!leaveGroup@{leaveGroup}}
\index{leaveGroup@{leaveGroup}!KNetwork::KMulticastSocketImpl@{KNetwork::KMulticast\-Socket\-Impl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KNetwork::KMulticast\-Socket\-Impl::leave\-Group (const {\bf KSocket\-Address} \& {\em group}, const {\bf KNetwork\-Interface} \& {\em iface})\hspace{0.3cm}{\tt  [virtual]}}\label{classKNetwork_1_1KMulticastSocketImpl_a14}


This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Leaves a multicast group. 

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
kmulticastsocketdevice.h\end{CompactItemize}
