\doxysection{mw\+\_\+srvc\+\_\+aware.\+h File Reference}
\hypertarget{mw__srvc__aware_8h}{}\label{mw__srvc__aware_8h}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}


The aware service...  


{\ttfamily \#include "{}mw\+\_\+common.\+h"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structmwAwareHandler}{mw\+Aware\+Handler}}
\item 
struct \mbox{\hyperlink{structmwAwareListHandler}{mw\+Aware\+List\+Handler}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{mw__srvc__aware_8h_a9673ef57609cdfc52d0f53d77018a5cb}{mw\+Service\+\_\+\+AWARE}}~0x00000011
\begin{DoxyCompactList}\small\item\em Type identifier for the aware service. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_ab797bf0d10df7c493d63cf8558653e8c}{mw\+Aware\+Attribute\+Handler}}) (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_af8278b9a9cadedb7ab4a3266c68e68cb}{mw\+Aware\+Id\+Attribute\+Handler}}) (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}id, struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\begin{DoxyCompactList}\small\item\em Appropriate function type for the on-\/option signal. \end{DoxyCompactList}\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_a27745825d89492587f14e8b0a34c2e85}{mw\+Aware\+Snapshot\+Handler}}) (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, struct \mbox{\hyperlink{structmwAwareSnapshot}{mw\+Aware\+Snapshot}} \texorpdfstring{$\ast$}{*}id)
\begin{DoxyCompactList}\small\item\em Appropriate function type for the on-\/aware signal. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8}{mw\+Aware\+Attribute\+Keys}} \{ \newline
\mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a35df5690450f7a15d5f9c67c6e678a4b}{mw\+Attribute\+\_\+\+AV\+\_\+\+PREFS\+\_\+\+SET}} = 0x01
, \newline
\mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8adb1d5c2cca3454bc04356fa76366099e}{mw\+Attribute\+\_\+\+MICROPHONE}} = 0x02
, \newline
\mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a3ea3994c8654686923257569bf1f2c4b}{mw\+Attribute\+\_\+\+SPEAKERS}} = 0x03
, \newline
\mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a5a65cfdc1159fc3334a0153a71bc36ea}{mw\+Attribute\+\_\+\+VIDEO\+\_\+\+CAMERA}} = 0x04
, \newline
\mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a176fb6c3a5ec356d38ed837da0033741}{mw\+Attribute\+\_\+\+FILE\+\_\+\+TRANSFER}} = 0x06
 \}
\begin{DoxyCompactList}\small\item\em Predefined keys appropriate for a \doxylink{structmwAwareAttribute}{mw\+Aware\+Attribute}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
gboolean \mbox{\hyperlink{mw__srvc__aware_8h_af0c4c5116240026e2cbdd1a9e39b083f}{mw\+Aware\+Attribute\+\_\+as\+Boolean}} (const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\item 
guint32 \mbox{\hyperlink{mw__srvc__aware_8h_a178680ed401229ba8756f7643145ebb4}{mw\+Aware\+Attribute\+\_\+as\+Integer}} (const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\item 
const struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_a59c6335abc8dcc8f1c5cb7b0bb4c1e18}{mw\+Aware\+Attribute\+\_\+as\+Opaque}} (const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\begin{DoxyCompactList}\small\item\em Direct access to an attribute\textquotesingle{}s underlying opaque. \end{DoxyCompactList}\item 
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_ab44c9468fe034fb866faeb7f21193158}{mw\+Aware\+Attribute\+\_\+as\+String}} (const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\begin{DoxyCompactList}\small\item\em Copy of attribute string, must be g\+\_\+free\textquotesingle{}d. \end{DoxyCompactList}\item 
guint32 \mbox{\hyperlink{mw__srvc__aware_8h_a6844d407e56c5000eba88839d69683f3}{mw\+Aware\+Attribute\+\_\+get\+Key}} (const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a6b4e9cf5303953420f2036590a5fceaa}{mw\+Aware\+List\+\_\+add\+Aware}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, GList \texorpdfstring{$\ast$}{*}id\+\_\+list)
\begin{DoxyCompactList}\small\item\em Add a collection of user IDs to an aware list. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__aware_8h_a4f2246c23927b6e383ca43db0c695482}{mw\+Aware\+List\+\_\+free}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\begin{DoxyCompactList}\small\item\em Clean and free an aware list. \end{DoxyCompactList}\item 
gpointer \mbox{\hyperlink{mw__srvc__aware_8h_ad418dda7970b946a359e30c198bc51c8}{mw\+Aware\+List\+\_\+get\+Client\+Data}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\item 
struct \mbox{\hyperlink{structmwAwareListHandler}{mw\+Aware\+List\+Handler}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_ad9bf1f8ccb5062d14b498ae0ae24502b}{mw\+Aware\+List\+\_\+get\+Handler}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\item 
guint32 \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_a3aa0fc2fcdc3665160acc88ca64cba44}{mw\+Aware\+List\+\_\+get\+Watched\+Attributes}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\item 
struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_ab11d48589e9d847e8c1df9963348dfcb}{mw\+Aware\+List\+\_\+new}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareListHandler}{mw\+Aware\+List\+Handler}} \texorpdfstring{$\ast$}{*}handler)
\begin{DoxyCompactList}\small\item\em Allocate and initialize an aware list. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_af120a3a385b9c1ddd7cb21c6a9192d12}{mw\+Aware\+List\+\_\+remove\+All\+Aware}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a1fae01874bb8231532d3afad8a400d39}{mw\+Aware\+List\+\_\+remove\+Aware}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, GList \texorpdfstring{$\ast$}{*}id\+\_\+list)
\begin{DoxyCompactList}\small\item\em Remove a collection of user IDs from an aware list. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__aware_8h_ab93ebcd6a559f2958d9f121cf44ea9de}{mw\+Aware\+List\+\_\+remove\+Client\+Data}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\item 
void \mbox{\hyperlink{mw__srvc__aware_8h_a2193b27bace4f8d2144d14c50e2ca051}{mw\+Aware\+List\+\_\+set\+Client\+Data}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, gpointer data, GDestroy\+Notify cleanup)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a2925fa791450aed0d944cae7ecd794b7}{mw\+Aware\+List\+\_\+unwatch\+All\+Attributes}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list)
\begin{DoxyCompactList}\small\item\em remove all watched attributes \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a0edcfa5b39f1b07e89f286825060de6d}{mw\+Aware\+List\+\_\+unwatch\+Attribute\+Array}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, guint32 \texorpdfstring{$\ast$}{*}keys)
\begin{DoxyCompactList}\small\item\em stop watching a NULL terminated array of keys \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a770ee5f5cab511be3afc1c15d859877f}{mw\+Aware\+List\+\_\+unwatch\+Attributes}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, guint32 key,...)
\begin{DoxyCompactList}\small\item\em stop watching a NULL terminated list of keys \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a4c9fe3fd20cb23f378852e5557193f5b}{mw\+Aware\+List\+\_\+watch\+Attribute\+Array}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, guint32 \texorpdfstring{$\ast$}{*}keys)
\begin{DoxyCompactList}\small\item\em watch an NULL terminated array of keys \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a131ac4aa6a0bc27f41c38336f2f1e32c}{mw\+Aware\+List\+\_\+watch\+Attributes}} (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, guint32 key,...)
\begin{DoxyCompactList}\small\item\em watch a NULL terminated list of keys \end{DoxyCompactList}\item 
const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_acbf51eefecfdc654c1b290f56c2d5e84}{mw\+Service\+Aware\+\_\+get\+Attribute}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}user, guint32 key)
\begin{DoxyCompactList}\small\item\em look up the last known copy of an attribute for a user by the attribute\textquotesingle{}s key \end{DoxyCompactList}\item 
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_a5238cb8b95ba2ed8d3f3903abb3f73d3}{mw\+Service\+Aware\+\_\+get\+Text}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}user)
\begin{DoxyCompactList}\small\item\em look up the status description for a user \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__aware_8h_a5204e9237046024f491bebe218170d63}{mw\+Service\+Aware\+\_\+new}} (struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*}session, struct \mbox{\hyperlink{structmwAwareHandler}{mw\+Aware\+Handler}} \texorpdfstring{$\ast$}{*}handler)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_aafab0ffd455f248ea7ec5e09aa3b430b}{mw\+Service\+Aware\+\_\+set\+Attribute}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, guint32 key, struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*}opaque)
\begin{DoxyCompactList}\small\item\em Set an attribute value for this session. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a56b5e71c7e14bbef1bc8483036a57de2}{mw\+Service\+Aware\+\_\+set\+Attribute\+Boolean}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, guint32 key, gboolean val)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a723af5134b3937cc515988e65330e3ae}{mw\+Service\+Aware\+\_\+set\+Attribute\+Integer}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, guint32 key, guint32 val)
\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_ad56699f75da3373b46fad1555976ff47}{mw\+Service\+Aware\+\_\+set\+Attribute\+String}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, guint32 key, const char \texorpdfstring{$\ast$}{*}str)
\item 
void \mbox{\hyperlink{mw__srvc__aware_8h_a5a17b054331f6a0ff4fbe8e242f62738}{mw\+Service\+Aware\+\_\+set\+Status}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}user, struct \mbox{\hyperlink{structmwUserStatus}{mw\+User\+Status}} \texorpdfstring{$\ast$}{*}stat)
\begin{DoxyCompactList}\small\item\em trigger a got\+\_\+aware event constructed from the passed user and status information. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{mw__srvc__aware_8h_a5474b312ec1d7018f2290510afd09a8e}{mw\+Service\+Aware\+\_\+unset\+Attribute}} (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, guint32 key)
\begin{DoxyCompactList}\small\item\em Unset an attribute for this session. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The aware service... 

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000005}{Todo}}]remove the whole idea of an instantiated \doxylink{structmwAwareList}{mw\+Aware\+List} and instead use arbitrary pointers (including NULL) as keys to internally stored lists. This removes the problem of the service free\textquotesingle{}ing its lists and invalidating \doxylink{structmwAwareList}{mw\+Aware\+List} references from client code. \end{DoxyRefDesc}


\doxysubsection{Macro Definition Documentation}
\Hypertarget{mw__srvc__aware_8h_a9673ef57609cdfc52d0f53d77018a5cb}\label{mw__srvc__aware_8h_a9673ef57609cdfc52d0f53d77018a5cb} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwService\_AWARE@{mwService\_AWARE}}
\index{mwService\_AWARE@{mwService\_AWARE}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwService\_AWARE}{mwService\_AWARE}}
{\footnotesize\ttfamily \#define mw\+Service\+\_\+\+AWARE~0x00000011}



Type identifier for the aware service. 



\doxysubsection{Typedef Documentation}
\Hypertarget{mw__srvc__aware_8h_ab797bf0d10df7c493d63cf8558653e8c}\label{mw__srvc__aware_8h_ab797bf0d10df7c493d63cf8558653e8c} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttributeHandler@{mwAwareAttributeHandler}}
\index{mwAwareAttributeHandler@{mwAwareAttributeHandler}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttributeHandler}{mwAwareAttributeHandler}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} mw\+Aware\+Attribute\+Handler) (struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}srvc, struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)}

\Hypertarget{mw__srvc__aware_8h_af8278b9a9cadedb7ab4a3266c68e68cb}\label{mw__srvc__aware_8h_af8278b9a9cadedb7ab4a3266c68e68cb} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareIdAttributeHandler@{mwAwareIdAttributeHandler}}
\index{mwAwareIdAttributeHandler@{mwAwareIdAttributeHandler}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareIdAttributeHandler}{mwAwareIdAttributeHandler}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} mw\+Aware\+Id\+Attribute\+Handler) (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}id, struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}attrib)}



Appropriate function type for the on-\/option signal. 

The option\textquotesingle{}s value may need to be explicitly loaded in some instances, resulting in this handler being triggered again.


\begin{DoxyParams}{Parameters}
{\em list} & \doxylink{structmwAwareList}{mw\+Aware\+List} emiting the signal \\
\hline
{\em id} & awareness the attribute belongs to \\
\hline
{\em attrib} & attribute \\
\hline
\end{DoxyParams}
\Hypertarget{mw__srvc__aware_8h_a27745825d89492587f14e8b0a34c2e85}\label{mw__srvc__aware_8h_a27745825d89492587f14e8b0a34c2e85} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareSnapshotHandler@{mwAwareSnapshotHandler}}
\index{mwAwareSnapshotHandler@{mwAwareSnapshotHandler}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareSnapshotHandler}{mwAwareSnapshotHandler}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} mw\+Aware\+Snapshot\+Handler) (struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}list, struct \mbox{\hyperlink{structmwAwareSnapshot}{mw\+Aware\+Snapshot}} \texorpdfstring{$\ast$}{*}id)}



Appropriate function type for the on-\/aware signal. 


\begin{DoxyParams}{Parameters}
{\em list} & \doxylink{structmwAwareList}{mw\+Aware\+List} emiting the signal \\
\hline
{\em id} & awareness status information \\
\hline
{\em data} & user-\/specified data \\
\hline
\end{DoxyParams}


\doxysubsection{Enumeration Type Documentation}
\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttributeKeys@{mwAwareAttributeKeys}}
\index{mwAwareAttributeKeys@{mwAwareAttributeKeys}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttributeKeys}{mwAwareAttributeKeys}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8}{mw\+Aware\+Attribute\+Keys}}}



Predefined keys appropriate for a \doxylink{structmwAwareAttribute}{mw\+Aware\+Attribute}. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{mwAttribute\_AV\_PREFS\_SET@{mwAttribute\_AV\_PREFS\_SET}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAttribute\_AV\_PREFS\_SET@{mwAttribute\_AV\_PREFS\_SET}}}\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a35df5690450f7a15d5f9c67c6e678a4b}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a35df5690450f7a15d5f9c67c6e678a4b} 
mw\+Attribute\+\_\+\+AV\+\_\+\+PREFS\+\_\+\+SET&A/V prefs specified, gboolean. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwAttribute\_MICROPHONE@{mwAttribute\_MICROPHONE}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAttribute\_MICROPHONE@{mwAttribute\_MICROPHONE}}}\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8adb1d5c2cca3454bc04356fa76366099e}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8adb1d5c2cca3454bc04356fa76366099e} 
mw\+Attribute\+\_\+\+MICROPHONE&has a microphone, gboolean \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwAttribute\_SPEAKERS@{mwAttribute\_SPEAKERS}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAttribute\_SPEAKERS@{mwAttribute\_SPEAKERS}}}\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a3ea3994c8654686923257569bf1f2c4b}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a3ea3994c8654686923257569bf1f2c4b} 
mw\+Attribute\+\_\+\+SPEAKERS&has speakers, gboolean \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwAttribute\_VIDEO\_CAMERA@{mwAttribute\_VIDEO\_CAMERA}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAttribute\_VIDEO\_CAMERA@{mwAttribute\_VIDEO\_CAMERA}}}\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a5a65cfdc1159fc3334a0153a71bc36ea}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a5a65cfdc1159fc3334a0153a71bc36ea} 
mw\+Attribute\+\_\+\+VIDEO\+\_\+\+CAMERA&has a video camera, gboolean \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwAttribute\_FILE\_TRANSFER@{mwAttribute\_FILE\_TRANSFER}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAttribute\_FILE\_TRANSFER@{mwAttribute\_FILE\_TRANSFER}}}\Hypertarget{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a176fb6c3a5ec356d38ed837da0033741}\label{mw__srvc__aware_8h_ad8092d618186e59148fc837325f1d1c8a176fb6c3a5ec356d38ed837da0033741} 
mw\+Attribute\+\_\+\+FILE\+\_\+\+TRANSFER&supports file transfers, gboolean \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\Hypertarget{mw__srvc__aware_8h_af0c4c5116240026e2cbdd1a9e39b083f}\label{mw__srvc__aware_8h_af0c4c5116240026e2cbdd1a9e39b083f} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttribute\_asBoolean@{mwAwareAttribute\_asBoolean}}
\index{mwAwareAttribute\_asBoolean@{mwAwareAttribute\_asBoolean}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttribute\_asBoolean()}{mwAwareAttribute\_asBoolean()}}
{\footnotesize\ttfamily gboolean mw\+Aware\+Attribute\+\_\+as\+Boolean (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}}]{attrib }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a178680ed401229ba8756f7643145ebb4}\label{mw__srvc__aware_8h_a178680ed401229ba8756f7643145ebb4} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttribute\_asInteger@{mwAwareAttribute\_asInteger}}
\index{mwAwareAttribute\_asInteger@{mwAwareAttribute\_asInteger}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttribute\_asInteger()}{mwAwareAttribute\_asInteger()}}
{\footnotesize\ttfamily guint32 mw\+Aware\+Attribute\+\_\+as\+Integer (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}}]{attrib }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a59c6335abc8dcc8f1c5cb7b0bb4c1e18}\label{mw__srvc__aware_8h_a59c6335abc8dcc8f1c5cb7b0bb4c1e18} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttribute\_asOpaque@{mwAwareAttribute\_asOpaque}}
\index{mwAwareAttribute\_asOpaque@{mwAwareAttribute\_asOpaque}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttribute\_asOpaque()}{mwAwareAttribute\_asOpaque()}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*} mw\+Aware\+Attribute\+\_\+as\+Opaque (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}}]{attrib }\end{DoxyParamCaption})}



Direct access to an attribute\textquotesingle{}s underlying opaque. 

\Hypertarget{mw__srvc__aware_8h_ab44c9468fe034fb866faeb7f21193158}\label{mw__srvc__aware_8h_ab44c9468fe034fb866faeb7f21193158} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttribute\_asString@{mwAwareAttribute\_asString}}
\index{mwAwareAttribute\_asString@{mwAwareAttribute\_asString}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttribute\_asString()}{mwAwareAttribute\_asString()}}
{\footnotesize\ttfamily char \texorpdfstring{$\ast$}{*} mw\+Aware\+Attribute\+\_\+as\+String (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}}]{attrib }\end{DoxyParamCaption})}



Copy of attribute string, must be g\+\_\+free\textquotesingle{}d. 

If the attribute\textquotesingle{}s content cannot be loaded as a string, returns NULL \Hypertarget{mw__srvc__aware_8h_a6844d407e56c5000eba88839d69683f3}\label{mw__srvc__aware_8h_a6844d407e56c5000eba88839d69683f3} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareAttribute\_getKey@{mwAwareAttribute\_getKey}}
\index{mwAwareAttribute\_getKey@{mwAwareAttribute\_getKey}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareAttribute\_getKey()}{mwAwareAttribute\_getKey()}}
{\footnotesize\ttfamily guint32 mw\+Aware\+Attribute\+\_\+get\+Key (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*}}]{attrib }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a6b4e9cf5303953420f2036590a5fceaa}\label{mw__srvc__aware_8h_a6b4e9cf5303953420f2036590a5fceaa} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_addAware@{mwAwareList\_addAware}}
\index{mwAwareList\_addAware@{mwAwareList\_addAware}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_addAware()}{mwAwareList\_addAware()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+add\+Aware (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{GList \texorpdfstring{$\ast$}{*}}]{id\+\_\+list }\end{DoxyParamCaption})}



Add a collection of user IDs to an aware list. 


\begin{DoxyParams}{Parameters}
{\em list} & \doxylink{structmwAwareList}{mw\+Aware\+List} to add user ID to \\
\hline
{\em id\+\_\+list} & \doxylink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block} list of user IDs to add \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 for success, non-\/zero to indicate an error. 
\end{DoxyReturn}
\Hypertarget{mw__srvc__aware_8h_a4f2246c23927b6e383ca43db0c695482}\label{mw__srvc__aware_8h_a4f2246c23927b6e383ca43db0c695482} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_free@{mwAwareList\_free}}
\index{mwAwareList\_free@{mwAwareList\_free}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_free()}{mwAwareList\_free()}}
{\footnotesize\ttfamily void mw\+Aware\+List\+\_\+free (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}



Clean and free an aware list. 

\Hypertarget{mw__srvc__aware_8h_ad418dda7970b946a359e30c198bc51c8}\label{mw__srvc__aware_8h_ad418dda7970b946a359e30c198bc51c8} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_getClientData@{mwAwareList\_getClientData}}
\index{mwAwareList\_getClientData@{mwAwareList\_getClientData}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_getClientData()}{mwAwareList\_getClientData()}}
{\footnotesize\ttfamily gpointer mw\+Aware\+List\+\_\+get\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_ad9bf1f8ccb5062d14b498ae0ae24502b}\label{mw__srvc__aware_8h_ad9bf1f8ccb5062d14b498ae0ae24502b} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_getHandler@{mwAwareList\_getHandler}}
\index{mwAwareList\_getHandler@{mwAwareList\_getHandler}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_getHandler()}{mwAwareList\_getHandler()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwAwareListHandler}{mw\+Aware\+List\+Handler}} \texorpdfstring{$\ast$}{*} mw\+Aware\+List\+\_\+get\+Handler (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a3aa0fc2fcdc3665160acc88ca64cba44}\label{mw__srvc__aware_8h_a3aa0fc2fcdc3665160acc88ca64cba44} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_getWatchedAttributes@{mwAwareList\_getWatchedAttributes}}
\index{mwAwareList\_getWatchedAttributes@{mwAwareList\_getWatchedAttributes}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_getWatchedAttributes()}{mwAwareList\_getWatchedAttributes()}}
{\footnotesize\ttfamily guint32 \texorpdfstring{$\ast$}{*} mw\+Aware\+List\+\_\+get\+Watched\+Attributes (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_ab11d48589e9d847e8c1df9963348dfcb}\label{mw__srvc__aware_8h_ab11d48589e9d847e8c1df9963348dfcb} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_new@{mwAwareList\_new}}
\index{mwAwareList\_new@{mwAwareList\_new}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_new()}{mwAwareList\_new()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*} mw\+Aware\+List\+\_\+new (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwAwareListHandler}{mw\+Aware\+List\+Handler}} \texorpdfstring{$\ast$}{*}}]{handler }\end{DoxyParamCaption})}



Allocate and initialize an aware list. 

\Hypertarget{mw__srvc__aware_8h_af120a3a385b9c1ddd7cb21c6a9192d12}\label{mw__srvc__aware_8h_af120a3a385b9c1ddd7cb21c6a9192d12} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_removeAllAware@{mwAwareList\_removeAllAware}}
\index{mwAwareList\_removeAllAware@{mwAwareList\_removeAllAware}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_removeAllAware()}{mwAwareList\_removeAllAware()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+remove\+All\+Aware (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a1fae01874bb8231532d3afad8a400d39}\label{mw__srvc__aware_8h_a1fae01874bb8231532d3afad8a400d39} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_removeAware@{mwAwareList\_removeAware}}
\index{mwAwareList\_removeAware@{mwAwareList\_removeAware}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_removeAware()}{mwAwareList\_removeAware()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+remove\+Aware (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{GList \texorpdfstring{$\ast$}{*}}]{id\+\_\+list }\end{DoxyParamCaption})}



Remove a collection of user IDs from an aware list. 


\begin{DoxyParams}{Parameters}
{\em list} & \doxylink{structmwAwareList}{mw\+Aware\+List} to remove user ID from \\
\hline
{\em id\+\_\+list} & \doxylink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block} list of user IDs to remove \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 for success, non-\/zero to indicate an error. 
\end{DoxyReturn}
\Hypertarget{mw__srvc__aware_8h_ab93ebcd6a559f2958d9f121cf44ea9de}\label{mw__srvc__aware_8h_ab93ebcd6a559f2958d9f121cf44ea9de} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_removeClientData@{mwAwareList\_removeClientData}}
\index{mwAwareList\_removeClientData@{mwAwareList\_removeClientData}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_removeClientData()}{mwAwareList\_removeClientData()}}
{\footnotesize\ttfamily void mw\+Aware\+List\+\_\+remove\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a2193b27bace4f8d2144d14c50e2ca051}\label{mw__srvc__aware_8h_a2193b27bace4f8d2144d14c50e2ca051} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_setClientData@{mwAwareList\_setClientData}}
\index{mwAwareList\_setClientData@{mwAwareList\_setClientData}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_setClientData()}{mwAwareList\_setClientData()}}
{\footnotesize\ttfamily void mw\+Aware\+List\+\_\+set\+Client\+Data (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{gpointer}]{data,  }\item[{GDestroy\+Notify}]{cleanup }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a2925fa791450aed0d944cae7ecd794b7}\label{mw__srvc__aware_8h_a2925fa791450aed0d944cae7ecd794b7} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_unwatchAllAttributes@{mwAwareList\_unwatchAllAttributes}}
\index{mwAwareList\_unwatchAllAttributes@{mwAwareList\_unwatchAllAttributes}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_unwatchAllAttributes()}{mwAwareList\_unwatchAllAttributes()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+unwatch\+All\+Attributes (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list }\end{DoxyParamCaption})}



remove all watched attributes 

\Hypertarget{mw__srvc__aware_8h_a0edcfa5b39f1b07e89f286825060de6d}\label{mw__srvc__aware_8h_a0edcfa5b39f1b07e89f286825060de6d} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_unwatchAttributeArray@{mwAwareList\_unwatchAttributeArray}}
\index{mwAwareList\_unwatchAttributeArray@{mwAwareList\_unwatchAttributeArray}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_unwatchAttributeArray()}{mwAwareList\_unwatchAttributeArray()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+unwatch\+Attribute\+Array (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{guint32 \texorpdfstring{$\ast$}{*}}]{keys }\end{DoxyParamCaption})}



stop watching a NULL terminated array of keys 

\Hypertarget{mw__srvc__aware_8h_a770ee5f5cab511be3afc1c15d859877f}\label{mw__srvc__aware_8h_a770ee5f5cab511be3afc1c15d859877f} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_unwatchAttributes@{mwAwareList\_unwatchAttributes}}
\index{mwAwareList\_unwatchAttributes@{mwAwareList\_unwatchAttributes}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_unwatchAttributes()}{mwAwareList\_unwatchAttributes()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+unwatch\+Attributes (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{guint32}]{key,  }\item[{}]{... }\end{DoxyParamCaption})}



stop watching a NULL terminated list of keys 

\Hypertarget{mw__srvc__aware_8h_a4c9fe3fd20cb23f378852e5557193f5b}\label{mw__srvc__aware_8h_a4c9fe3fd20cb23f378852e5557193f5b} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_watchAttributeArray@{mwAwareList\_watchAttributeArray}}
\index{mwAwareList\_watchAttributeArray@{mwAwareList\_watchAttributeArray}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_watchAttributeArray()}{mwAwareList\_watchAttributeArray()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+watch\+Attribute\+Array (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{guint32 \texorpdfstring{$\ast$}{*}}]{keys }\end{DoxyParamCaption})}



watch an NULL terminated array of keys 

\Hypertarget{mw__srvc__aware_8h_a131ac4aa6a0bc27f41c38336f2f1e32c}\label{mw__srvc__aware_8h_a131ac4aa6a0bc27f41c38336f2f1e32c} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwAwareList\_watchAttributes@{mwAwareList\_watchAttributes}}
\index{mwAwareList\_watchAttributes@{mwAwareList\_watchAttributes}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwAwareList\_watchAttributes()}{mwAwareList\_watchAttributes()}}
{\footnotesize\ttfamily int mw\+Aware\+List\+\_\+watch\+Attributes (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwAwareList}{mw\+Aware\+List}} \texorpdfstring{$\ast$}{*}}]{list,  }\item[{guint32}]{key,  }\item[{}]{... }\end{DoxyParamCaption})}



watch a NULL terminated list of keys 

\Hypertarget{mw__srvc__aware_8h_acbf51eefecfdc654c1b290f56c2d5e84}\label{mw__srvc__aware_8h_acbf51eefecfdc654c1b290f56c2d5e84} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_getAttribute@{mwServiceAware\_getAttribute}}
\index{mwServiceAware\_getAttribute@{mwServiceAware\_getAttribute}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_getAttribute()}{mwServiceAware\_getAttribute()}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structmwAwareAttribute}{mw\+Aware\+Attribute}} \texorpdfstring{$\ast$}{*} mw\+Service\+Aware\+\_\+get\+Attribute (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}}]{user,  }\item[{guint32}]{key }\end{DoxyParamCaption})}



look up the last known copy of an attribute for a user by the attribute\textquotesingle{}s key 

\Hypertarget{mw__srvc__aware_8h_a5238cb8b95ba2ed8d3f3903abb3f73d3}\label{mw__srvc__aware_8h_a5238cb8b95ba2ed8d3f3903abb3f73d3} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_getText@{mwServiceAware\_getText}}
\index{mwServiceAware\_getText@{mwServiceAware\_getText}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_getText()}{mwServiceAware\_getText()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} mw\+Service\+Aware\+\_\+get\+Text (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}}]{user }\end{DoxyParamCaption})}



look up the status description for a user 

\Hypertarget{mw__srvc__aware_8h_a5204e9237046024f491bebe218170d63}\label{mw__srvc__aware_8h_a5204e9237046024f491bebe218170d63} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_new@{mwServiceAware\_new}}
\index{mwServiceAware\_new@{mwServiceAware\_new}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_new()}{mwServiceAware\_new()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*} mw\+Service\+Aware\+\_\+new (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*}}]{session,  }\item[{struct \mbox{\hyperlink{structmwAwareHandler}{mw\+Aware\+Handler}} \texorpdfstring{$\ast$}{*}}]{handler }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_aafab0ffd455f248ea7ec5e09aa3b430b}\label{mw__srvc__aware_8h_aafab0ffd455f248ea7ec5e09aa3b430b} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_setAttribute@{mwServiceAware\_setAttribute}}
\index{mwServiceAware\_setAttribute@{mwServiceAware\_setAttribute}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_setAttribute()}{mwServiceAware\_setAttribute()}}
{\footnotesize\ttfamily int mw\+Service\+Aware\+\_\+set\+Attribute (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{guint32}]{key,  }\item[{struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*}}]{opaque }\end{DoxyParamCaption})}



Set an attribute value for this session. 

\Hypertarget{mw__srvc__aware_8h_a56b5e71c7e14bbef1bc8483036a57de2}\label{mw__srvc__aware_8h_a56b5e71c7e14bbef1bc8483036a57de2} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_setAttributeBoolean@{mwServiceAware\_setAttributeBoolean}}
\index{mwServiceAware\_setAttributeBoolean@{mwServiceAware\_setAttributeBoolean}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_setAttributeBoolean()}{mwServiceAware\_setAttributeBoolean()}}
{\footnotesize\ttfamily int mw\+Service\+Aware\+\_\+set\+Attribute\+Boolean (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{guint32}]{key,  }\item[{gboolean}]{val }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a723af5134b3937cc515988e65330e3ae}\label{mw__srvc__aware_8h_a723af5134b3937cc515988e65330e3ae} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_setAttributeInteger@{mwServiceAware\_setAttributeInteger}}
\index{mwServiceAware\_setAttributeInteger@{mwServiceAware\_setAttributeInteger}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_setAttributeInteger()}{mwServiceAware\_setAttributeInteger()}}
{\footnotesize\ttfamily int mw\+Service\+Aware\+\_\+set\+Attribute\+Integer (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{guint32}]{key,  }\item[{guint32}]{val }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_ad56699f75da3373b46fad1555976ff47}\label{mw__srvc__aware_8h_ad56699f75da3373b46fad1555976ff47} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_setAttributeString@{mwServiceAware\_setAttributeString}}
\index{mwServiceAware\_setAttributeString@{mwServiceAware\_setAttributeString}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_setAttributeString()}{mwServiceAware\_setAttributeString()}}
{\footnotesize\ttfamily int mw\+Service\+Aware\+\_\+set\+Attribute\+String (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{guint32}]{key,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{str }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__aware_8h_a5a17b054331f6a0ff4fbe8e242f62738}\label{mw__srvc__aware_8h_a5a17b054331f6a0ff4fbe8e242f62738} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_setStatus@{mwServiceAware\_setStatus}}
\index{mwServiceAware\_setStatus@{mwServiceAware\_setStatus}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_setStatus()}{mwServiceAware\_setStatus()}}
{\footnotesize\ttfamily void mw\+Service\+Aware\+\_\+set\+Status (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct \mbox{\hyperlink{structmwAwareIdBlock}{mw\+Aware\+Id\+Block}} \texorpdfstring{$\ast$}{*}}]{user,  }\item[{struct \mbox{\hyperlink{structmwUserStatus}{mw\+User\+Status}} \texorpdfstring{$\ast$}{*}}]{stat }\end{DoxyParamCaption})}



trigger a got\+\_\+aware event constructed from the passed user and status information. 

Useful for adding false users and having the get\+Text function work for them \Hypertarget{mw__srvc__aware_8h_a5474b312ec1d7018f2290510afd09a8e}\label{mw__srvc__aware_8h_a5474b312ec1d7018f2290510afd09a8e} 
\index{mw\_srvc\_aware.h@{mw\_srvc\_aware.h}!mwServiceAware\_unsetAttribute@{mwServiceAware\_unsetAttribute}}
\index{mwServiceAware\_unsetAttribute@{mwServiceAware\_unsetAttribute}!mw\_srvc\_aware.h@{mw\_srvc\_aware.h}}
\doxysubsubsection{\texorpdfstring{mwServiceAware\_unsetAttribute()}{mwServiceAware\_unsetAttribute()}}
{\footnotesize\ttfamily int mw\+Service\+Aware\+\_\+unset\+Attribute (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceAware}{mw\+Service\+Aware}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{guint32}]{key }\end{DoxyParamCaption})}



Unset an attribute for this session. 

