\doxysection{mw\+\_\+srvc\+\_\+im.\+h File Reference}
\hypertarget{mw__srvc__im_8h}{}\label{mw__srvc__im_8h}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}}


The IM service provides one-\/on-\/one communication between users.  


{\ttfamily \#include $<$glib.\+h$>$}\newline
{\ttfamily \#include "{}mw\+\_\+common.\+h"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structmwImHandler}{mw\+Im\+Handler}}
\begin{DoxyCompactList}\small\item\em IM Service Handler. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{mw__srvc__im_8h_acd26403ebeb75cde250ddb57b8cfc3fe}{mw\+Conversation\+\_\+is\+Closed}}(conv)~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06aba419e21933109ec87f690571cbad41d}{mw\+Conversation\+\_\+\+CLOSED}})
\item 
\#define \mbox{\hyperlink{mw__srvc__im_8h_a18c14bbf9e6f0fd68ddec28310897a25}{mw\+Conversation\+\_\+is\+Open}}(conv)~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a1f4a6c1f815e45963e201e115044e6f8}{mw\+Conversation\+\_\+\+OPEN}})
\item 
\#define \mbox{\hyperlink{mw__srvc__im_8h_a7ccb3181436b318174121c25b40742d0}{mw\+Conversation\+\_\+is\+Pending}}(conv)~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a642450bf83850c99d021574f08eb2cca}{mw\+Conversation\+\_\+\+PENDING}})
\item 
\#define \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}(conv,  state)~  (\mbox{\hyperlink{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d}{mw\+Conversation\+\_\+get\+State}}(conv) == (state))
\item 
\#define \mbox{\hyperlink{mw__srvc__im_8h_afd6e82bbc1046ce9d52b842dba7722d2}{mw\+Service\+\_\+\+IM}}~0x00001000
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06}{mw\+Conversation\+State}} \{ \newline
\mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06aba419e21933109ec87f690571cbad41d}{mw\+Conversation\+\_\+\+CLOSED}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a642450bf83850c99d021574f08eb2cca}{mw\+Conversation\+\_\+\+PENDING}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a1f4a6c1f815e45963e201e115044e6f8}{mw\+Conversation\+\_\+\+OPEN}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a0a9b2dc324406ff896170f45aac3b886}{mw\+Conversation\+\_\+\+UNKNOWN}}
 \}
\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} \{ \newline
\mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a8a32a92f7402725dea621147b63c315b}{mw\+Im\+Client\+\_\+\+PLAIN}} = 0x00000001
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a0b649d9e379256e9f11064cb4083eae7}{mw\+Im\+Client\+\_\+\+NOTESBUDDY}} = 0x00033453
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17ac33797c61e096df2a75bb3c185387756}{mw\+Im\+Client\+\_\+\+PRECONF}} = 0x00000019
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a3aaa9667089e6a9260d3e3f4dbbee70a}{mw\+Im\+Client\+\_\+\+UNKNOWN}} = 0xffffffff
 \}
\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}} \{ \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a1dc9ac1e49b18739d6a9877b1b264f99}{mw\+Im\+Send\+\_\+\+PLAIN}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a967a6006d197bd292680562b4e86988a}{mw\+Im\+Send\+\_\+\+TYPING}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a6cc56c9b2bdce2f1e4035e818d77d29f}{mw\+Im\+Send\+\_\+\+HTML}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63ac1eabb5d6f9c551313634ab13bfc2abc}{mw\+Im\+Send\+\_\+\+SUBJECT}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63adfbd9dd7f630ca2202e98401c43c8115}{mw\+Im\+Send\+\_\+\+MIME}}
, \newline
\mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a0be05e58874a146e136e97fc32382d26}{mw\+Im\+Send\+\_\+\+TIMESTAMP}}
 \}
\begin{DoxyCompactList}\small\item\em Types of supported messages. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{mw__srvc__im_8h_a39757a34b81911a80ef817e6e45bc43a}{mw\+Conversation\+\_\+close}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv, guint32 err)
\begin{DoxyCompactList}\small\item\em close a conversation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__im_8h_a92aa89cc6cb34ebf4b4f232f532af961}{mw\+Conversation\+\_\+free}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em close and destroy the conversation and its backing channel, and call the optional client data cleanup function \end{DoxyCompactList}\item 
gpointer \mbox{\hyperlink{mw__srvc__im_8h_ab38ac095354a0b0514eeeb7a8c55b121}{mw\+Conversation\+\_\+get\+Client\+Data}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em Reference associated client data. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} \mbox{\hyperlink{mw__srvc__im_8h_a0267c3e82ea1c8c49652d6fb827895a0}{mw\+Conversation\+\_\+get\+Client\+Type}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\item 
struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_a056b1d4e04cce809e1621323a9b69d06}{mw\+Conversation\+\_\+get\+Service}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06}{mw\+Conversation\+State}} \mbox{\hyperlink{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d}{mw\+Conversation\+\_\+get\+State}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em get the state of a conversation \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_ada3f14fe7f4c3b71b9e09afa183f2526}{mw\+Conversation\+\_\+get\+Target}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em ID for conversation partner. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwLoginInfo}{mw\+Login\+Info}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_a4ad221e29c898249c9fdbad924ff6b53}{mw\+Conversation\+\_\+get\+Target\+Info}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em login information for conversation partner. \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{mw__srvc__im_8h_a139fef3e5530529e593d164648d0d626}{mw\+Conversation\+\_\+is\+Encrypted}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em determine whether outgoing messages are being encrypted \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__im_8h_a2960bacb6c2f6307b60f8f92e1ac51f1}{mw\+Conversation\+\_\+open}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em attempt to open a conversation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__im_8h_a9e0c7574ae526c04c0c8433138dca068}{mw\+Conversation\+\_\+remove\+Client\+Data}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv)
\begin{DoxyCompactList}\small\item\em Remove any associated client data, calling the optional cleanup function if one was provided. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__im_8h_adeb608f4473b09907bf096a8b4aee881}{mw\+Conversation\+\_\+send}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv, enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}} type, gconstpointer send)
\begin{DoxyCompactList}\small\item\em send a message over an open conversation \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__im_8h_af81229e742e279eb8f8104d6369e692c}{mw\+Conversation\+\_\+set\+Client\+Data}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv, gpointer data, GDestroy\+Notify clean)
\begin{DoxyCompactList}\small\item\em Associates client data with a conversation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__im_8h_a1118f842f0373657f5ab8ada5a2a66c6}{mw\+Conversation\+\_\+set\+Encrypted}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv, gboolean use\+Cipher)
\begin{DoxyCompactList}\small\item\em set whether outgoing messages should be encrypted using the negotiated cipher, if any \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{mw__srvc__im_8h_abeaf3935e8d6970920e4536fc97e1503}{mw\+Conversation\+\_\+supports}} (struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}conv, enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}} type)
\begin{DoxyCompactList}\small\item\em determine whether a conversation supports the given message type \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_a258ae10fe7415d5c4622fe88566aeb12}{mw\+Service\+Im\+\_\+find\+Conversation}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*}target)
\begin{DoxyCompactList}\small\item\em reference an existing conversation to target \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} \mbox{\hyperlink{mw__srvc__im_8h_aa52f0d24ee0183085dd46e38e47261da}{mw\+Service\+Im\+\_\+get\+Client\+Type}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc)
\item 
struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_a857cec129c8430697f57550a5c62262a}{mw\+Service\+Im\+\_\+get\+Conversation}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*}target)
\begin{DoxyCompactList}\small\item\em reference an existing conversation to target, or create a new conversation to target if one does not already exist \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwImHandler}{mw\+Im\+Handler}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_aa4085febc8716200ddd5a8aa963e0389}{mw\+Service\+Im\+\_\+get\+Handler}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc)
\item 
struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__im_8h_a927005e6dc42657ab97c43ff5599ef2c}{mw\+Service\+Im\+\_\+new}} (struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*}session, struct \mbox{\hyperlink{structmwImHandler}{mw\+Im\+Handler}} \texorpdfstring{$\ast$}{*}handler)
\item 
void \mbox{\hyperlink{mw__srvc__im_8h_abd6566ad7e1d2b5b3a64a8fe5b0ea27e}{mw\+Service\+Im\+\_\+set\+Client\+Type}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc, enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} type)
\begin{DoxyCompactList}\small\item\em Set the default client type for the service. \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{mw__srvc__im_8h_af74d89d1656f69853b68cd2576783a3a}{mw\+Service\+Im\+\_\+supports}} (struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}srvc, enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}} type)
\begin{DoxyCompactList}\small\item\em determine if the conversations created from this service will support a given send type \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The IM service provides one-\/on-\/one communication between users. 

Messages sent over conversations may relay different types of information, in a variety of formats. The basic feature-\/set provides plain-\/text chat with typing notification. More complex features may be negotiated transparently by setting the IM Client Type for a conversation, or for the service as a whole. 

\doxysubsection{Macro Definition Documentation}
\Hypertarget{mw__srvc__im_8h_acd26403ebeb75cde250ddb57b8cfc3fe}\label{mw__srvc__im_8h_acd26403ebeb75cde250ddb57b8cfc3fe} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_isClosed@{mwConversation\_isClosed}}
\index{mwConversation\_isClosed@{mwConversation\_isClosed}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_isClosed}{mwConversation\_isClosed}}
{\footnotesize\ttfamily \#define mw\+Conversation\+\_\+is\+Closed(\begin{DoxyParamCaption}\item[{}]{conv }\end{DoxyParamCaption})~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06aba419e21933109ec87f690571cbad41d}{mw\+Conversation\+\_\+\+CLOSED}})}

\Hypertarget{mw__srvc__im_8h_a18c14bbf9e6f0fd68ddec28310897a25}\label{mw__srvc__im_8h_a18c14bbf9e6f0fd68ddec28310897a25} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_isOpen@{mwConversation\_isOpen}}
\index{mwConversation\_isOpen@{mwConversation\_isOpen}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_isOpen}{mwConversation\_isOpen}}
{\footnotesize\ttfamily \#define mw\+Conversation\+\_\+is\+Open(\begin{DoxyParamCaption}\item[{}]{conv }\end{DoxyParamCaption})~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a1f4a6c1f815e45963e201e115044e6f8}{mw\+Conversation\+\_\+\+OPEN}})}

\Hypertarget{mw__srvc__im_8h_a7ccb3181436b318174121c25b40742d0}\label{mw__srvc__im_8h_a7ccb3181436b318174121c25b40742d0} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_isPending@{mwConversation\_isPending}}
\index{mwConversation\_isPending@{mwConversation\_isPending}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_isPending}{mwConversation\_isPending}}
{\footnotesize\ttfamily \#define mw\+Conversation\+\_\+is\+Pending(\begin{DoxyParamCaption}\item[{}]{conv }\end{DoxyParamCaption})~  \mbox{\hyperlink{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}{mw\+Conversation\+\_\+is\+State}}((conv), \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a642450bf83850c99d021574f08eb2cca}{mw\+Conversation\+\_\+\+PENDING}})}

\Hypertarget{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad}\label{mw__srvc__im_8h_ac9988b2be0d17a9eeb77451a87196cad} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_isState@{mwConversation\_isState}}
\index{mwConversation\_isState@{mwConversation\_isState}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_isState}{mwConversation\_isState}}
{\footnotesize\ttfamily \#define mw\+Conversation\+\_\+is\+State(\begin{DoxyParamCaption}\item[{}]{conv,  }\item[{}]{state }\end{DoxyParamCaption})~  (\mbox{\hyperlink{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d}{mw\+Conversation\+\_\+get\+State}}(conv) == (state))}

\Hypertarget{mw__srvc__im_8h_afd6e82bbc1046ce9d52b842dba7722d2}\label{mw__srvc__im_8h_afd6e82bbc1046ce9d52b842dba7722d2} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwService\_IM@{mwService\_IM}}
\index{mwService\_IM@{mwService\_IM}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwService\_IM}{mwService\_IM}}
{\footnotesize\ttfamily \#define mw\+Service\+\_\+\+IM~0x00001000}



\doxysubsection{Enumeration Type Documentation}
\Hypertarget{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06}\label{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversationState@{mwConversationState}}
\index{mwConversationState@{mwConversationState}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversationState}{mwConversationState}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06}{mw\+Conversation\+State}}}

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d}{mw\+Conversation\+\_\+get\+State} 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{mwConversation\_CLOSED@{mwConversation\_CLOSED}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_CLOSED@{mwConversation\_CLOSED}}}\Hypertarget{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06aba419e21933109ec87f690571cbad41d}\label{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06aba419e21933109ec87f690571cbad41d} 
mw\+Conversation\+\_\+\+CLOSED&conversation is not open \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwConversation\_PENDING@{mwConversation\_PENDING}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_PENDING@{mwConversation\_PENDING}}}\Hypertarget{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a642450bf83850c99d021574f08eb2cca}\label{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a642450bf83850c99d021574f08eb2cca} 
mw\+Conversation\+\_\+\+PENDING&conversation is opening \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwConversation\_OPEN@{mwConversation\_OPEN}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_OPEN@{mwConversation\_OPEN}}}\Hypertarget{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a1f4a6c1f815e45963e201e115044e6f8}\label{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a1f4a6c1f815e45963e201e115044e6f8} 
mw\+Conversation\+\_\+\+OPEN&conversation is open \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwConversation\_UNKNOWN@{mwConversation\_UNKNOWN}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_UNKNOWN@{mwConversation\_UNKNOWN}}}\Hypertarget{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a0a9b2dc324406ff896170f45aac3b886}\label{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06a0a9b2dc324406ff896170f45aac3b886} 
mw\+Conversation\+\_\+\+UNKNOWN&unknown state \\
\hline

\end{DoxyEnumFields}
\Hypertarget{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}\label{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImClientType@{mwImClientType}}
\index{mwImClientType@{mwImClientType}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwImClientType}{mwImClientType}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImClient\_PLAIN@{mwImClient\_PLAIN}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImClient\_PLAIN@{mwImClient\_PLAIN}}}\Hypertarget{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a8a32a92f7402725dea621147b63c315b}\label{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a8a32a92f7402725dea621147b63c315b} 
mw\+Im\+Client\+\_\+\+PLAIN&text, typing \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImClient\_NOTESBUDDY@{mwImClient\_NOTESBUDDY}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImClient\_NOTESBUDDY@{mwImClient\_NOTESBUDDY}}}\Hypertarget{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a0b649d9e379256e9f11064cb4083eae7}\label{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a0b649d9e379256e9f11064cb4083eae7} 
mw\+Im\+Client\+\_\+\+NOTESBUDDY&adds html, subject, mime \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImClient\_PRECONF@{mwImClient\_PRECONF}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImClient\_PRECONF@{mwImClient\_PRECONF}}}\Hypertarget{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17ac33797c61e096df2a75bb3c185387756}\label{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17ac33797c61e096df2a75bb3c185387756} 
mw\+Im\+Client\+\_\+\+PRECONF&pre-\/conference, legacy \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImClient\_UNKNOWN@{mwImClient\_UNKNOWN}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImClient\_UNKNOWN@{mwImClient\_UNKNOWN}}}\Hypertarget{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a3aaa9667089e6a9260d3e3f4dbbee70a}\label{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17a3aaa9667089e6a9260d3e3f4dbbee70a} 
mw\+Im\+Client\+\_\+\+UNKNOWN&trouble determining type \\
\hline

\end{DoxyEnumFields}
\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSendType@{mwImSendType}}
\index{mwImSendType@{mwImSendType}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwImSendType}{mwImSendType}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}}}



Types of supported messages. 

When a conversation is created, the least common denominator of features between either side of the conversation (based on what features are available in the IM service itself) becomes the set of supported features for that conversation. At any point, the feature set for the service may change, without affecting any existing conversations.

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_af74d89d1656f69853b68cd2576783a3a}{mw\+Service\+Im\+\_\+supports} 

mw\+Service\+Im\+\_\+set\+Supported 

\doxylink{mw__srvc__im_8h_abeaf3935e8d6970920e4536fc97e1503}{mw\+Conversation\+\_\+supports} 

\doxylink{mw__srvc__im_8h_adeb608f4473b09907bf096a8b4aee881}{mw\+Conversation\+\_\+send} 

mw\+Service\+Im\+Handler\+::conversation\+\_\+recv 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_PLAIN@{mwImSend\_PLAIN}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_PLAIN@{mwImSend\_PLAIN}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a1dc9ac1e49b18739d6a9877b1b264f99}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a1dc9ac1e49b18739d6a9877b1b264f99} 
mw\+Im\+Send\+\_\+\+PLAIN&char \texorpdfstring{$\ast$}{*}, plain-\/text message \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_TYPING@{mwImSend\_TYPING}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_TYPING@{mwImSend\_TYPING}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a967a6006d197bd292680562b4e86988a}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a967a6006d197bd292680562b4e86988a} 
mw\+Im\+Send\+\_\+\+TYPING&gboolean, typing status \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_HTML@{mwImSend\_HTML}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_HTML@{mwImSend\_HTML}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a6cc56c9b2bdce2f1e4035e818d77d29f}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a6cc56c9b2bdce2f1e4035e818d77d29f} 
mw\+Im\+Send\+\_\+\+HTML&char \texorpdfstring{$\ast$}{*}, HTML formatted message (NOTESBUDDY) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_SUBJECT@{mwImSend\_SUBJECT}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_SUBJECT@{mwImSend\_SUBJECT}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63ac1eabb5d6f9c551313634ab13bfc2abc}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63ac1eabb5d6f9c551313634ab13bfc2abc} 
mw\+Im\+Send\+\_\+\+SUBJECT&char \texorpdfstring{$\ast$}{*}, conversation subject (NOTESBUDDY) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_MIME@{mwImSend\_MIME}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_MIME@{mwImSend\_MIME}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63adfbd9dd7f630ca2202e98401c43c8115}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63adfbd9dd7f630ca2202e98401c43c8115} 
mw\+Im\+Send\+\_\+\+MIME&char \texorpdfstring{$\ast$}{*}, MIME-\/encoded message (NOTESBUDDY) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwImSend\_TIMESTAMP@{mwImSend\_TIMESTAMP}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwImSend\_TIMESTAMP@{mwImSend\_TIMESTAMP}}}\Hypertarget{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a0be05e58874a146e136e97fc32382d26}\label{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63a0be05e58874a146e136e97fc32382d26} 
mw\+Im\+Send\+\_\+\+TIMESTAMP&char \texorpdfstring{$\ast$}{*}, YYYY\+:\+MM\+:\+DD\+:\+HH\+:mm\+:SS format (NOTESBUDDY) \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\Hypertarget{mw__srvc__im_8h_a39757a34b81911a80ef817e6e45bc43a}\label{mw__srvc__im_8h_a39757a34b81911a80ef817e6e45bc43a} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_close@{mwConversation\_close}}
\index{mwConversation\_close@{mwConversation\_close}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_close()}{mwConversation\_close()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+close (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv,  }\item[{guint32}]{err }\end{DoxyParamCaption})}



close a conversation. 

If the conversation was not already closed, mw\+Service\+Im\+Handler\+::conversation\+\_\+closed will be triggered \Hypertarget{mw__srvc__im_8h_a92aa89cc6cb34ebf4b4f232f532af961}\label{mw__srvc__im_8h_a92aa89cc6cb34ebf4b4f232f532af961} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_free@{mwConversation\_free}}
\index{mwConversation\_free@{mwConversation\_free}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_free()}{mwConversation\_free()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+free (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



close and destroy the conversation and its backing channel, and call the optional client data cleanup function 

\Hypertarget{mw__srvc__im_8h_ab38ac095354a0b0514eeeb7a8c55b121}\label{mw__srvc__im_8h_ab38ac095354a0b0514eeeb7a8c55b121} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getClientData@{mwConversation\_getClientData}}
\index{mwConversation\_getClientData@{mwConversation\_getClientData}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getClientData()}{mwConversation\_getClientData()}}
{\footnotesize\ttfamily gpointer mw\+Conversation\+\_\+get\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



Reference associated client data. 

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_af81229e742e279eb8f8104d6369e692c}{mw\+Conversation\+\_\+set\+Client\+Data} 

\doxylink{mw__srvc__im_8h_a9e0c7574ae526c04c0c8433138dca068}{mw\+Conversation\+\_\+remove\+Client\+Data} 
\end{DoxySeeAlso}
\Hypertarget{mw__srvc__im_8h_a0267c3e82ea1c8c49652d6fb827895a0}\label{mw__srvc__im_8h_a0267c3e82ea1c8c49652d6fb827895a0} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getClientType@{mwConversation\_getClientType}}
\index{mwConversation\_getClientType@{mwConversation\_getClientType}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getClientType()}{mwConversation\_getClientType()}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} mw\+Conversation\+\_\+get\+Client\+Type (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__im_8h_a056b1d4e04cce809e1621323a9b69d06}\label{mw__srvc__im_8h_a056b1d4e04cce809e1621323a9b69d06} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getService@{mwConversation\_getService}}
\index{mwConversation\_getService@{mwConversation\_getService}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getService()}{mwConversation\_getService()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*} mw\+Conversation\+\_\+get\+Service (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
owning service for a conversation 
\end{DoxyReturn}
\Hypertarget{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d}\label{mw__srvc__im_8h_a8c32b70e52ab20bb2887f37962180b7d} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getState@{mwConversation\_getState}}
\index{mwConversation\_getState@{mwConversation\_getState}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getState()}{mwConversation\_getState()}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_acfdf4c12398d17d8e936a2a7fe371d06}{mw\+Conversation\+State}} mw\+Conversation\+\_\+get\+State (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



get the state of a conversation 

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_a18c14bbf9e6f0fd68ddec28310897a25}{mw\+Conversation\+\_\+is\+Open} 

\doxylink{mw__srvc__im_8h_acd26403ebeb75cde250ddb57b8cfc3fe}{mw\+Conversation\+\_\+is\+Closed} 

\doxylink{mw__srvc__im_8h_a7ccb3181436b318174121c25b40742d0}{mw\+Conversation\+\_\+is\+Pending} 
\end{DoxySeeAlso}
\Hypertarget{mw__srvc__im_8h_ada3f14fe7f4c3b71b9e09afa183f2526}\label{mw__srvc__im_8h_ada3f14fe7f4c3b71b9e09afa183f2526} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getTarget@{mwConversation\_getTarget}}
\index{mwConversation\_getTarget@{mwConversation\_getTarget}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getTarget()}{mwConversation\_getTarget()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*} mw\+Conversation\+\_\+get\+Target (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



ID for conversation partner. 

\Hypertarget{mw__srvc__im_8h_a4ad221e29c898249c9fdbad924ff6b53}\label{mw__srvc__im_8h_a4ad221e29c898249c9fdbad924ff6b53} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_getTargetInfo@{mwConversation\_getTargetInfo}}
\index{mwConversation\_getTargetInfo@{mwConversation\_getTargetInfo}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_getTargetInfo()}{mwConversation\_getTargetInfo()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwLoginInfo}{mw\+Login\+Info}} \texorpdfstring{$\ast$}{*} mw\+Conversation\+\_\+get\+Target\+Info (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



login information for conversation partner. 

returns NULL if conversation is not OPEN \Hypertarget{mw__srvc__im_8h_a139fef3e5530529e593d164648d0d626}\label{mw__srvc__im_8h_a139fef3e5530529e593d164648d0d626} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_isEncrypted@{mwConversation\_isEncrypted}}
\index{mwConversation\_isEncrypted@{mwConversation\_isEncrypted}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_isEncrypted()}{mwConversation\_isEncrypted()}}
{\footnotesize\ttfamily gboolean mw\+Conversation\+\_\+is\+Encrypted (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



determine whether outgoing messages are being encrypted 

\Hypertarget{mw__srvc__im_8h_a2960bacb6c2f6307b60f8f92e1ac51f1}\label{mw__srvc__im_8h_a2960bacb6c2f6307b60f8f92e1ac51f1} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_open@{mwConversation\_open}}
\index{mwConversation\_open@{mwConversation\_open}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_open()}{mwConversation\_open()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+open (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



attempt to open a conversation. 

If the conversation was not already open and it is accepted, mw\+Service\+Im\+Handler\+::conversation\+\_\+opened will be triggered. Upon failure, mw\+Service\+Im\+Handler\+::conversation\+\_\+closed will be triggered \Hypertarget{mw__srvc__im_8h_a9e0c7574ae526c04c0c8433138dca068}\label{mw__srvc__im_8h_a9e0c7574ae526c04c0c8433138dca068} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_removeClientData@{mwConversation\_removeClientData}}
\index{mwConversation\_removeClientData@{mwConversation\_removeClientData}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_removeClientData()}{mwConversation\_removeClientData()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+remove\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv }\end{DoxyParamCaption})}



Remove any associated client data, calling the optional cleanup function if one was provided. 

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_af81229e742e279eb8f8104d6369e692c}{mw\+Conversation\+\_\+set\+Client\+Data} 

\doxylink{mw__srvc__im_8h_ab38ac095354a0b0514eeeb7a8c55b121}{mw\+Conversation\+\_\+get\+Client\+Data} 
\end{DoxySeeAlso}
\Hypertarget{mw__srvc__im_8h_adeb608f4473b09907bf096a8b4aee881}\label{mw__srvc__im_8h_adeb608f4473b09907bf096a8b4aee881} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_send@{mwConversation\_send}}
\index{mwConversation\_send@{mwConversation\_send}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_send()}{mwConversation\_send()}}
{\footnotesize\ttfamily int mw\+Conversation\+\_\+send (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv,  }\item[{enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}}}]{type,  }\item[{gconstpointer}]{send }\end{DoxyParamCaption})}



send a message over an open conversation 

\Hypertarget{mw__srvc__im_8h_af81229e742e279eb8f8104d6369e692c}\label{mw__srvc__im_8h_af81229e742e279eb8f8104d6369e692c} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_setClientData@{mwConversation\_setClientData}}
\index{mwConversation\_setClientData@{mwConversation\_setClientData}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_setClientData()}{mwConversation\_setClientData()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+set\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv,  }\item[{gpointer}]{data,  }\item[{GDestroy\+Notify}]{clean }\end{DoxyParamCaption})}



Associates client data with a conversation. 

If there is existing data, it will not have its cleanup function called.

\begin{DoxySeeAlso}{See also}
\doxylink{mw__srvc__im_8h_ab38ac095354a0b0514eeeb7a8c55b121}{mw\+Conversation\+\_\+get\+Client\+Data} 

\doxylink{mw__srvc__im_8h_a9e0c7574ae526c04c0c8433138dca068}{mw\+Conversation\+\_\+remove\+Client\+Data} 
\end{DoxySeeAlso}
\Hypertarget{mw__srvc__im_8h_a1118f842f0373657f5ab8ada5a2a66c6}\label{mw__srvc__im_8h_a1118f842f0373657f5ab8ada5a2a66c6} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_setEncrypted@{mwConversation\_setEncrypted}}
\index{mwConversation\_setEncrypted@{mwConversation\_setEncrypted}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_setEncrypted()}{mwConversation\_setEncrypted()}}
{\footnotesize\ttfamily void mw\+Conversation\+\_\+set\+Encrypted (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv,  }\item[{gboolean}]{use\+Cipher }\end{DoxyParamCaption})}



set whether outgoing messages should be encrypted using the negotiated cipher, if any 

\Hypertarget{mw__srvc__im_8h_abeaf3935e8d6970920e4536fc97e1503}\label{mw__srvc__im_8h_abeaf3935e8d6970920e4536fc97e1503} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwConversation\_supports@{mwConversation\_supports}}
\index{mwConversation\_supports@{mwConversation\_supports}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwConversation\_supports()}{mwConversation\_supports()}}
{\footnotesize\ttfamily gboolean mw\+Conversation\+\_\+supports (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*}}]{conv,  }\item[{enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}}}]{type }\end{DoxyParamCaption})}



determine whether a conversation supports the given message type 

\Hypertarget{mw__srvc__im_8h_a258ae10fe7415d5c4622fe88566aeb12}\label{mw__srvc__im_8h_a258ae10fe7415d5c4622fe88566aeb12} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_findConversation@{mwServiceIm\_findConversation}}
\index{mwServiceIm\_findConversation@{mwServiceIm\_findConversation}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_findConversation()}{mwServiceIm\_findConversation()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*} mw\+Service\+Im\+\_\+find\+Conversation (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*}}]{target }\end{DoxyParamCaption})}



reference an existing conversation to target 

\Hypertarget{mw__srvc__im_8h_aa52f0d24ee0183085dd46e38e47261da}\label{mw__srvc__im_8h_aa52f0d24ee0183085dd46e38e47261da} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_getClientType@{mwServiceIm\_getClientType}}
\index{mwServiceIm\_getClientType@{mwServiceIm\_getClientType}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_getClientType()}{mwServiceIm\_getClientType()}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}} mw\+Service\+Im\+\_\+get\+Client\+Type (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__im_8h_a857cec129c8430697f57550a5c62262a}\label{mw__srvc__im_8h_a857cec129c8430697f57550a5c62262a} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_getConversation@{mwServiceIm\_getConversation}}
\index{mwServiceIm\_getConversation@{mwServiceIm\_getConversation}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_getConversation()}{mwServiceIm\_getConversation()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwConversation}{mw\+Conversation}} \texorpdfstring{$\ast$}{*} mw\+Service\+Im\+\_\+get\+Conversation (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwIdBlock}{mw\+Id\+Block}} \texorpdfstring{$\ast$}{*}}]{target }\end{DoxyParamCaption})}



reference an existing conversation to target, or create a new conversation to target if one does not already exist 

\Hypertarget{mw__srvc__im_8h_aa4085febc8716200ddd5a8aa963e0389}\label{mw__srvc__im_8h_aa4085febc8716200ddd5a8aa963e0389} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_getHandler@{mwServiceIm\_getHandler}}
\index{mwServiceIm\_getHandler@{mwServiceIm\_getHandler}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_getHandler()}{mwServiceIm\_getHandler()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwImHandler}{mw\+Im\+Handler}} \texorpdfstring{$\ast$}{*} mw\+Service\+Im\+\_\+get\+Handler (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__im_8h_a927005e6dc42657ab97c43ff5599ef2c}\label{mw__srvc__im_8h_a927005e6dc42657ab97c43ff5599ef2c} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_new@{mwServiceIm\_new}}
\index{mwServiceIm\_new@{mwServiceIm\_new}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_new()}{mwServiceIm\_new()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*} mw\+Service\+Im\+\_\+new (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*}}]{session,  }\item[{struct \mbox{\hyperlink{structmwImHandler}{mw\+Im\+Handler}} \texorpdfstring{$\ast$}{*}}]{handler }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__im_8h_abd6566ad7e1d2b5b3a64a8fe5b0ea27e}\label{mw__srvc__im_8h_abd6566ad7e1d2b5b3a64a8fe5b0ea27e} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_setClientType@{mwServiceIm\_setClientType}}
\index{mwServiceIm\_setClientType@{mwServiceIm\_setClientType}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_setClientType()}{mwServiceIm\_setClientType()}}
{\footnotesize\ttfamily void mw\+Service\+Im\+\_\+set\+Client\+Type (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{enum \mbox{\hyperlink{mw__srvc__im_8h_ad127e58a93fa52166065266a6041fc17}{mw\+Im\+Client\+Type}}}]{type }\end{DoxyParamCaption})}



Set the default client type for the service. 

Newly created conversations will attempt to meet this level of functionality first.


\begin{DoxyParams}{Parameters}
{\em srvc} & the IM service \\
\hline
{\em type} & the send type to enable/disable \\
\hline
\end{DoxyParams}
\Hypertarget{mw__srvc__im_8h_af74d89d1656f69853b68cd2576783a3a}\label{mw__srvc__im_8h_af74d89d1656f69853b68cd2576783a3a} 
\index{mw\_srvc\_im.h@{mw\_srvc\_im.h}!mwServiceIm\_supports@{mwServiceIm\_supports}}
\index{mwServiceIm\_supports@{mwServiceIm\_supports}!mw\_srvc\_im.h@{mw\_srvc\_im.h}}
\doxysubsubsection{\texorpdfstring{mwServiceIm\_supports()}{mwServiceIm\_supports()}}
{\footnotesize\ttfamily gboolean mw\+Service\+Im\+\_\+supports (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceIm}{mw\+Service\+Im}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{enum \mbox{\hyperlink{mw__srvc__im_8h_acdce2eef1ff823bf823e533410061a63}{mw\+Im\+Send\+Type}}}]{type }\end{DoxyParamCaption})}



determine if the conversations created from this service will support a given send type 

