\section{KIMIface Class Reference}
\label{classKIMIface}\index{KIMIface@{KIMIface}}
Generic DCOP interface for {\bf KDE} instant messenger applications Note one omission of this interface is the lack of control over the range of values used for protocols' names.  


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

Inheritance diagram for KIMIface:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=55pt]{classKIMIface__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for KIMIface:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=99pt]{classKIMIface__coll__graph}
\end{center}
\end{figure}
\subsection*{DCOP Member Functions}
\begin{CompactItemize}
\item 
virtual {\bf QString\-List} {\bf all\-Contacts} ()=0
\item 
virtual {\bf QString\-List} {\bf reachable\-Contacts} ()=0
\item 
virtual {\bf QString\-List} {\bf online\-Contacts} ()=0
\item 
virtual {\bf QString\-List} {\bf file\-Transfer\-Contacts} ()=0
\item 
virtual bool {\bf is\-Present} (const {\bf QString} \&uid)=0
\item 
virtual {\bf QString} {\bf display\-Name} (const {\bf QString} \&uid)=0
\item 
virtual {\bf QString} {\bf presence\-String} (const {\bf QString} \&uid)=0
\item 
virtual int {\bf presence\-Status} (const {\bf QString} \&uid)=0
\item 
virtual bool {\bf can\-Receive\-Files} (const {\bf QString} \&uid)=0
\item 
virtual bool {\bf can\-Respond} (const {\bf QString} \&uid)=0
\item 
virtual {\bf QString} {\bf locate} (const {\bf QString} \&contact\-Id, const {\bf QString} \&protocol)=0
\item 
virtual {\bf QPixmap} {\bf icon} (const {\bf QString} \&uid)=0
\item 
virtual {\bf QString} {\bf context} (const {\bf QString} \&uid)=0
\item 
virtual {\bf QString\-List} {\bf protocols} ()=0
\item 
virtual void {\bf message\-Contact} (const {\bf QString} \&uid, const {\bf QString} \&message)=0
\item 
virtual void {\bf message\-New\-Contact} (const {\bf QString} \&contact\-Id, const {\bf QString} \&protocol)=0
\item 
virtual void {\bf chat\-With\-Contact} (const {\bf QString} \&uid)=0
\item 
virtual void {\bf send\-File} (const {\bf QString} \&uid, const {\bf KURL} \&source\-URL, const {\bf QString} \&alt\-File\-Name=QString::null, uint file\-Size=0)=0
\item 
virtual bool {\bf add\-Contact} (const {\bf QString} \&contact\-Id, const {\bf QString} \&protocol)=0
\end{CompactItemize}
\subsection*{Public Attributes}
\begin{CompactItemize}
\item 
k\_\-dcop\_\-signals {\bf \_\-\_\-pad0\_\-\_\-}: void contact\-Presence\-Changed( {\bf QString} uid\label{classKIMIface_o0}

\item 
k\_\-dcop\_\-signals {\bf QCString} {\bf app\-Id}\label{classKIMIface_o1}

\item 
k\_\-dcop\_\-signals {\bf QCString} int {\bf presence}\label{classKIMIface_o2}

\end{CompactItemize}


\subsection{Detailed Description}
Generic DCOP interface for {\bf KDE} instant messenger applications Note one omission of this interface is the lack of control over the range of values used for protocols' names. 

If you are implementing this interface, note that your application must have the following information in its desktop file, so that it can be identified as providing KIMIface at runtime: X-DCOP-Service\-Name=$<$application name$>$ Service\-Types=DCOP/Instant\-Messenger and the class implementing KIMIface must pass \char`\"{}KIMIface\char`\"{} to the {\bf DCOPObject} constructor.

\begin{Desc}
\item[Since:]3.3 \end{Desc}
\begin{Desc}
\item[Author:]Will Stephenson $<${\tt lists@stevello.free-online.co.uk}$>$ \end{Desc}




Definition at line 43 of file kimiface.h.

\subsection{Member Function Documentation}
\index{KIMIface@{KIMIface}!allContacts@{allContacts}}
\index{allContacts@{allContacts}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString\-List} KIMIface::all\-Contacts ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z0}


Obtain a list of IM-contactable entries in the {\bf KDE} address book. 

\begin{Desc}
\item[Returns:]a list of KABC uids.\end{Desc}
\index{KIMIface@{KIMIface}!reachableContacts@{reachableContacts}}
\index{reachableContacts@{reachableContacts}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString\-List} KIMIface::reachable\-Contacts ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z1}


Obtain a list of {\bf KDE} address book entries who are currently reachable. 

\begin{Desc}
\item[Returns:]a list of KABC uids who can receive a message, even if offline.\end{Desc}
\index{KIMIface@{KIMIface}!onlineContacts@{onlineContacts}}
\index{onlineContacts@{onlineContacts}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString\-List} KIMIface::online\-Contacts ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z2}


Obtain a list of {\bf KDE} address book entries who are currently online. 

\begin{Desc}
\item[Returns:]a list of KABC uids who are online with unspecified presence.\end{Desc}
\index{KIMIface@{KIMIface}!fileTransferContacts@{fileTransferContacts}}
\index{fileTransferContacts@{fileTransferContacts}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString\-List} KIMIface::file\-Transfer\-Contacts ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z3}


Obtain a list of {\bf KDE} address book entries who may receive file transfers. 

\begin{Desc}
\item[Returns:]a list of KABC uids capable of file transfer.\end{Desc}
\index{KIMIface@{KIMIface}!isPresent@{isPresent}}
\index{isPresent@{isPresent}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KIMIface::is\-Present (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z4}


Confirm if a given contact is known to the IM application. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you are interested in. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]whether the program knows of this KABC uid.\end{Desc}
\index{KIMIface@{KIMIface}!displayName@{displayName}}
\index{displayName@{displayName}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString} KIMIface::display\-Name (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z5}


Obtain the IM app's idea of the contact's display name Useful if KABC lookups may be too slow. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you are interested in. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]the corresponding display name.\end{Desc}
\index{KIMIface@{KIMIface}!presenceString@{presenceString}}
\index{presenceString@{presenceString}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString} KIMIface::presence\-String (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z6}


Obtain the IM presence as a i18ned string for the specified contact. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want the presence for. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]the i18ned string describing presence.\end{Desc}
\index{KIMIface@{KIMIface}!presenceStatus@{presenceStatus}}
\index{presenceStatus@{presenceStatus}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual int KIMIface::presence\-Status (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z7}


Obtain the IM presence as a number for the specified contact. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want the presence for. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a numeric representation of presence - currently one of 0 (Unknown), 1 (Offline), 2 (Connecting), 3 (Away), 4 (Online)\end{Desc}
\index{KIMIface@{KIMIface}!canReceiveFiles@{canReceiveFiles}}
\index{canReceiveFiles@{canReceiveFiles}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KIMIface::can\-Receive\-Files (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z8}


Indicate if a given contact can receive files. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you are interested in. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]whether the specified addressee can receive files.\end{Desc}
\index{KIMIface@{KIMIface}!canRespond@{canRespond}}
\index{canRespond@{canRespond}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KIMIface::can\-Respond (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z9}


Some media are unidirectional (eg, sending SMS via a web interface). 

This refers to the contact's ability to respond as defined by the medium, not by their presence. Someone may appear offline (SMS has no presence) to you but in fact be able to respond. \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you are interested in. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]whether the specified contact can respond.\end{Desc}
\index{KIMIface@{KIMIface}!locate@{locate}}
\index{locate@{locate}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString} KIMIface::locate (const {\bf QString} \& {\em contact\-Id}, const {\bf QString} \& {\em protocol})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z10}


Get the KABC uid corresponding to the supplied IM address. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em contact\-Id}]the protocol specific identifier for the contact, eg UIN for ICQ, screenname for AIM, nick for IRC. \item[{\em protocol}]the protocol, eg one of \char`\"{}AIMProtocol\char`\"{}, \char`\"{}MSNProtocol\char`\"{}, \char`\"{}ICQProtocol\char`\"{}, \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a KABC uid or null if none found\end{Desc}
\index{KIMIface@{KIMIface}!icon@{icon}}
\index{icon@{icon}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QPixmap} KIMIface::icon (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z11}


Obtain the icon representing IM presence for the specified contact. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want the presence for. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a pixmap representing the uid's presence.\end{Desc}
\index{KIMIface@{KIMIface}!context@{context}}
\index{context@{context}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString} KIMIface::context (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z12}


Get the supplied contact's current context (home, work, or any). 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want the context for. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a {\bf QString} describing the context, or null if not supported.\end{Desc}
\index{KIMIface@{KIMIface}!protocols@{protocols}}
\index{protocols@{protocols}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf QString\-List} KIMIface::protocols ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z13}


Discover what protocols the application supports. 

\begin{Desc}
\item[Returns:]the set of protocols that the application supports, ie a list of protocol names, eg \char`\"{}AIMProtocol\char`\"{}, \char`\"{}MSNProtocol\char`\"{}, \char`\"{}ICQProtocol\char`\"{}, ...\end{Desc}
\index{KIMIface@{KIMIface}!messageContact@{messageContact}}
\index{messageContact@{messageContact}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void KIMIface::message\-Contact (const {\bf QString} \& {\em uid}, const {\bf QString} \& {\em message})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z14}


Send a single message to the specified contact Any response will be handled by the IM client as a normal conversation. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want to send the message to. \item[{\em message}]the message to send them.\end{description}
\end{Desc}
\index{KIMIface@{KIMIface}!messageNewContact@{messageNewContact}}
\index{messageNewContact@{messageNewContact}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void KIMIface::message\-New\-Contact (const {\bf QString} \& {\em contact\-Id}, const {\bf QString} \& {\em protocol})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z15}


Open a chat to a contact, and optionally set some initial text. 

\index{KIMIface@{KIMIface}!chatWithContact@{chatWithContact}}
\index{chatWithContact@{chatWithContact}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void KIMIface::chat\-With\-Contact (const {\bf QString} \& {\em uid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z16}


Start a chat session with the specified contact. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you want to chat with.\end{description}
\end{Desc}
\index{KIMIface@{KIMIface}!sendFile@{sendFile}}
\index{sendFile@{sendFile}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void KIMIface::send\-File (const {\bf QString} \& {\em uid}, const {\bf KURL} \& {\em source\-URL}, const {\bf QString} \& {\em alt\-File\-Name} = {\tt QString::null}, uint {\em file\-Size} = {\tt 0})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z17}


Send a file to the contact. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em uid}]the KABC uid you are sending to. \item[{\em source\-URL}]a \end{description}
\end{Desc}
\begin{Desc}
\item[See also:]{\bf KURL} to send. \end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em alt\-File\-Name}]an alternate filename describing the file \item[{\em file\-Size}]file size in bytes\end{description}
\end{Desc}
\index{KIMIface@{KIMIface}!addContact@{addContact}}
\index{addContact@{addContact}!KIMIface@{KIMIface}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool KIMIface::add\-Contact (const {\bf QString} \& {\em contact\-Id}, const {\bf QString} \& {\em protocol})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classKIMIface_z18}


Add a contact to the contact list. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em contact\-Id}]the protocol specific identifier for the contact, eg UIN for ICQ, screenname for AIM, nick for IRC. \item[{\em protocol}]the protocol, eg one of \char`\"{}AIMProtocol\char`\"{}, \char`\"{}MSNProtocol\char`\"{}, \char`\"{}ICQProtocol\char`\"{}, ... \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]whether the add succeeded. False may signal already present, protocol not supported, or add operation not supported. \end{Desc}
\begin{Desc}
\item[See also:]{\bf locate}{\rm (p.\,\pageref{classKIMIface_z10})}\end{Desc}


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