\doxysection{mw\+\_\+srvc\+\_\+store.\+h File Reference}
\hypertarget{mw__srvc__store_8h}{}\label{mw__srvc__store_8h}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}}
{\ttfamily \#include $<$glib.\+h$>$}\newline
{\ttfamily \#include "{}mw\+\_\+common.\+h"{}}\newline
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{mw__srvc__store_8h_a6befc88185dd58cc16e704e4c4c78322}{KEY\+\_\+\+IS\+\_\+\+LOTUS\+\_\+\+RESERVED}}(key)~  (((guint32) key) $<$= (\mbox{\hyperlink{mw__srvc__store_8h_a8bc869f420049a0bd5d0b1c2de7cc89e}{LOTUS\+\_\+\+RESERVED\+\_\+\+LIMIT}}))
\begin{DoxyCompactList}\small\item\em Check if a key is in the range of Lotus reserved keys. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{mw__srvc__store_8h_a8bc869f420049a0bd5d0b1c2de7cc89e}{LOTUS\+\_\+\+RESERVED\+\_\+\+LIMIT}}~0x186a0
\begin{DoxyCompactList}\small\item\em The upper limit of reserved Lotus keys. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{mw__srvc__store_8h_a25f65d69ffed33ef673c8e152106549b}{mw\+Service\+\_\+\+STORAGE}}~0x00000018
\begin{DoxyCompactList}\small\item\em Type identifier for the storage service. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}{mw\+Storage\+Callback}}) (struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}srvc, guint32 result, struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}item, gpointer data)
\begin{DoxyCompactList}\small\item\em Appropriate function type for load and store callbacks. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88}{mw\+Storage\+Key}} \{ \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8f07f37098cbd1582954f3b060dd13ab}{mw\+Store\+\_\+\+AWARE\+\_\+\+LIST}} = 0x00000000
, \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a76cfbb82cc77f969260bf3ee1ab93950}{mw\+Store\+\_\+\+INVITE\+\_\+\+CHAT}} = 0x00000006
, \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ad97fb6917035f4ed4ca6576d8671b2d6}{mw\+Store\+\_\+\+INVITE\+\_\+\+MEETING}} = 0x0000000e
, \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8a037320a3eaff77120fee66eae5445b}{mw\+Store\+\_\+\+AWAY\+\_\+\+MESSAGES}} = 0x00000050
, \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a2b1d1f0de29ac8b4f309bff5c58735f1}{mw\+Store\+\_\+\+BUSY\+\_\+\+MESSAGES}} = 0x0000005a
, \newline
\mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ac3697e70cff492cbcbd2aca8fbc82f84}{mw\+Store\+\_\+\+ACTIVE\+\_\+\+MESSAGES}} = 0x00000064
 \}
\begin{DoxyCompactList}\small\item\em Some common keys storage keys. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{mw__srvc__store_8h_a8e323cfbdf1f9d3af18d7d27df3b603f}{mw\+Service\+Storage\+\_\+load}} (struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}srvc, struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}item, \mbox{\hyperlink{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}{mw\+Storage\+Callback}} cb, gpointer data, GDestroy\+Notify data\+\_\+free)
\begin{DoxyCompactList}\small\item\em Initiates a load call to the storage service. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a2ac7a373ae417e0f309defd6e2f83504}{mw\+Service\+Storage\+\_\+new}} (struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em Allocates and initializes a storage service instance for use on the passed session. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__store_8h_a43dafaf7dd5d09e4a1c92ec44bd5a842}{mw\+Service\+Storage\+\_\+save}} (struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}srvc, struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}item, \mbox{\hyperlink{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}{mw\+Storage\+Callback}} cb, gpointer data, GDestroy\+Notify data\+\_\+free)
\begin{DoxyCompactList}\small\item\em Initiates a store call to the storage service. \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{mw__srvc__store_8h_af622a55188af247d9b15ba52fbc29e79}{mw\+Storage\+Unit\+\_\+as\+Boolean}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}, gboolean val)
\begin{DoxyCompactList}\small\item\em attempts to obtain a boolean value from a storage unit. \end{DoxyCompactList}\item 
guint32 \mbox{\hyperlink{mw__srvc__store_8h_a34f62dceef1c6ea21b0561335c8a6abb}{mw\+Storage\+Unit\+\_\+as\+Integer}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}, guint32 val)
\begin{DoxyCompactList}\small\item\em attempts to obtain a guint32 value from a storage unit. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_ae4ff3ca0efcb88c6512dfc0e57b3febb}{mw\+Storage\+Unit\+\_\+as\+Opaque}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em direct access to the opaque data backing the storage unit \end{DoxyCompactList}\item 
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_aded59b1050f8a9cf7d054c396acbf638}{mw\+Storage\+Unit\+\_\+as\+String}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em attempts to obtain a string value from a storage unit. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{mw__srvc__store_8h_ae9acfeda591578400ae5defcce84010c}{mw\+Storage\+Unit\+\_\+free}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em clears and frees a storage unit \end{DoxyCompactList}\item 
guint32 \mbox{\hyperlink{mw__srvc__store_8h_a3bb73476fc749ff3a4e8ab0c327a83ba}{mw\+Storage\+Unit\+\_\+get\+Key}} (struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em get the key for the given storage unit \end{DoxyCompactList}\item 
struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_afb7c4b023f0577826f24cd7cd86840a1}{mw\+Storage\+Unit\+\_\+new}} (guint32 key)
\begin{DoxyCompactList}\small\item\em create an empty storage unit \end{DoxyCompactList}\item 
struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a9858e13f6ae5d67152b1e9a29e45467e}{mw\+Storage\+Unit\+\_\+new\+Boolean}} (guint32 key, gboolean val)
\begin{DoxyCompactList}\small\item\em creates a storage unit with the passed key, and an encapsulated boolean value \end{DoxyCompactList}\item 
struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a3098fd92d0acb320bd91373c978da112}{mw\+Storage\+Unit\+\_\+new\+Integer}} (guint32 key, guint32 val)
\item 
struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a602393c8aa38421f23429d693c1ca014}{mw\+Storage\+Unit\+\_\+new\+Opaque}} (guint32 key, struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em creates a storage unit with the passed key, and a copy of data. \end{DoxyCompactList}\item 
struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{mw__srvc__store_8h_a48e9bf6d63749aa0f2be8fe1e81a5457}{mw\+Storage\+Unit\+\_\+new\+String}} (guint32 key, const char \texorpdfstring{$\ast$}{*}str)
\begin{DoxyCompactList}\small\item\em creates a storage unit with the passed key, and an encapsulated string value. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\Hypertarget{mw__srvc__store_8h_a6befc88185dd58cc16e704e4c4c78322}\label{mw__srvc__store_8h_a6befc88185dd58cc16e704e4c4c78322} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!KEY\_IS\_LOTUS\_RESERVED@{KEY\_IS\_LOTUS\_RESERVED}}
\index{KEY\_IS\_LOTUS\_RESERVED@{KEY\_IS\_LOTUS\_RESERVED}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{KEY\_IS\_LOTUS\_RESERVED}{KEY\_IS\_LOTUS\_RESERVED}}
{\footnotesize\ttfamily \#define KEY\+\_\+\+IS\+\_\+\+LOTUS\+\_\+\+RESERVED(\begin{DoxyParamCaption}\item[{}]{key }\end{DoxyParamCaption})~  (((guint32) key) $<$= (\mbox{\hyperlink{mw__srvc__store_8h_a8bc869f420049a0bd5d0b1c2de7cc89e}{LOTUS\+\_\+\+RESERVED\+\_\+\+LIMIT}}))}



Check if a key is in the range of Lotus reserved keys. 

\Hypertarget{mw__srvc__store_8h_a8bc869f420049a0bd5d0b1c2de7cc89e}\label{mw__srvc__store_8h_a8bc869f420049a0bd5d0b1c2de7cc89e} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!LOTUS\_RESERVED\_LIMIT@{LOTUS\_RESERVED\_LIMIT}}
\index{LOTUS\_RESERVED\_LIMIT@{LOTUS\_RESERVED\_LIMIT}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{LOTUS\_RESERVED\_LIMIT}{LOTUS\_RESERVED\_LIMIT}}
{\footnotesize\ttfamily \#define LOTUS\+\_\+\+RESERVED\+\_\+\+LIMIT~0x186a0}



The upper limit of reserved Lotus keys. 

\Hypertarget{mw__srvc__store_8h_a25f65d69ffed33ef673c8e152106549b}\label{mw__srvc__store_8h_a25f65d69ffed33ef673c8e152106549b} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwService\_STORAGE@{mwService\_STORAGE}}
\index{mwService\_STORAGE@{mwService\_STORAGE}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwService\_STORAGE}{mwService\_STORAGE}}
{\footnotesize\ttfamily \#define mw\+Service\+\_\+\+STORAGE~0x00000018}



Type identifier for the storage service. 



\doxysubsection{Typedef Documentation}
\Hypertarget{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}\label{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageCallback@{mwStorageCallback}}
\index{mwStorageCallback@{mwStorageCallback}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageCallback}{mwStorageCallback}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} mw\+Storage\+Callback) (struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}srvc, guint32 result, struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}item, gpointer data)}



Appropriate function type for load and store callbacks. 


\begin{DoxyParams}{Parameters}
{\em srvc} & the storage service \\
\hline
{\em result} & the result value of the load or store call \\
\hline
{\em item} & the storage unit loaded or saved \\
\hline
{\em data} & optional user data \\
\hline
\end{DoxyParams}


\doxysubsection{Enumeration Type Documentation}
\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageKey@{mwStorageKey}}
\index{mwStorageKey@{mwStorageKey}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageKey}{mwStorageKey}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88}{mw\+Storage\+Key}}}



Some common keys storage keys. 

Anything in the range 0x00 to 0x186a0 (100000) is reserved for use by the Lotus clients. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_AWARE\_LIST@{mwStore\_AWARE\_LIST}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_AWARE\_LIST@{mwStore\_AWARE\_LIST}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8f07f37098cbd1582954f3b060dd13ab}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8f07f37098cbd1582954f3b060dd13ab} 
mw\+Store\+\_\+\+AWARE\+\_\+\+LIST&The buddy list, in the Sametime .dat file format. String \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_INVITE\_CHAT@{mwStore\_INVITE\_CHAT}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_INVITE\_CHAT@{mwStore\_INVITE\_CHAT}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a76cfbb82cc77f969260bf3ee1ab93950}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a76cfbb82cc77f969260bf3ee1ab93950} 
mw\+Store\+\_\+\+INVITE\+\_\+\+CHAT&Default text for chat invitations. String \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_INVITE\_MEETING@{mwStore\_INVITE\_MEETING}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_INVITE\_MEETING@{mwStore\_INVITE\_MEETING}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ad97fb6917035f4ed4ca6576d8671b2d6}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ad97fb6917035f4ed4ca6576d8671b2d6} 
mw\+Store\+\_\+\+INVITE\+\_\+\+MEETING&Default text for meeting invitations. String \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_AWAY\_MESSAGES@{mwStore\_AWAY\_MESSAGES}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_AWAY\_MESSAGES@{mwStore\_AWAY\_MESSAGES}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8a037320a3eaff77120fee66eae5445b}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a8a037320a3eaff77120fee66eae5445b} 
mw\+Store\+\_\+\+AWAY\+\_\+\+MESSAGES&Last five Away messages, separated by semicolon. String \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_BUSY\_MESSAGES@{mwStore\_BUSY\_MESSAGES}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_BUSY\_MESSAGES@{mwStore\_BUSY\_MESSAGES}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a2b1d1f0de29ac8b4f309bff5c58735f1}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88a2b1d1f0de29ac8b4f309bff5c58735f1} 
mw\+Store\+\_\+\+BUSY\+\_\+\+MESSAGES&Last five Busy (DND) messages, separated by semicolon. String \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{mwStore\_ACTIVE\_MESSAGES@{mwStore\_ACTIVE\_MESSAGES}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStore\_ACTIVE\_MESSAGES@{mwStore\_ACTIVE\_MESSAGES}}}\Hypertarget{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ac3697e70cff492cbcbd2aca8fbc82f84}\label{mw__srvc__store_8h_ab490c5f87cc36273720570b9bb2b3f88ac3697e70cff492cbcbd2aca8fbc82f84} 
mw\+Store\+\_\+\+ACTIVE\+\_\+\+MESSAGES&Last five Active messages, separated by semicolon. String \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\Hypertarget{mw__srvc__store_8h_a8e323cfbdf1f9d3af18d7d27df3b603f}\label{mw__srvc__store_8h_a8e323cfbdf1f9d3af18d7d27df3b603f} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwServiceStorage\_load@{mwServiceStorage\_load}}
\index{mwServiceStorage\_load@{mwServiceStorage\_load}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwServiceStorage\_load()}{mwServiceStorage\_load()}}
{\footnotesize\ttfamily void mw\+Service\+Storage\+\_\+load (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{item,  }\item[{\mbox{\hyperlink{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}{mw\+Storage\+Callback}}}]{cb,  }\item[{gpointer}]{data,  }\item[{GDestroy\+Notify}]{data\+\_\+free }\end{DoxyParamCaption})}



Initiates a load call to the storage service. 

If the service is not currently available, the call will be cached and processed when the service is started.


\begin{DoxyParams}{Parameters}
{\em srvc} & the storage service \\
\hline
{\em item} & storage unit to load \\
\hline
{\em cb} & callback function when the load call completes \\
\hline
{\em data} & user data for callback \\
\hline
{\em data\+\_\+free} & optional cleanup function for user data \\
\hline
\end{DoxyParams}
\Hypertarget{mw__srvc__store_8h_a2ac7a373ae417e0f309defd6e2f83504}\label{mw__srvc__store_8h_a2ac7a373ae417e0f309defd6e2f83504} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwServiceStorage\_new@{mwServiceStorage\_new}}
\index{mwServiceStorage\_new@{mwServiceStorage\_new}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwServiceStorage\_new()}{mwServiceStorage\_new()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*} mw\+Service\+Storage\+\_\+new (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwSession}{mw\+Session}} \texorpdfstring{$\ast$}{*}}]{ }\end{DoxyParamCaption})}



Allocates and initializes a storage service instance for use on the passed session. 

\Hypertarget{mw__srvc__store_8h_a43dafaf7dd5d09e4a1c92ec44bd5a842}\label{mw__srvc__store_8h_a43dafaf7dd5d09e4a1c92ec44bd5a842} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwServiceStorage\_save@{mwServiceStorage\_save}}
\index{mwServiceStorage\_save@{mwServiceStorage\_save}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwServiceStorage\_save()}{mwServiceStorage\_save()}}
{\footnotesize\ttfamily void mw\+Service\+Storage\+\_\+save (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmwServiceStorage}{mw\+Service\+Storage}} \texorpdfstring{$\ast$}{*}}]{srvc,  }\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{item,  }\item[{\mbox{\hyperlink{mw__srvc__store_8h_a7b4a98b1463fdf34bc7e99e8c388dcf8}{mw\+Storage\+Callback}}}]{cb,  }\item[{gpointer}]{data,  }\item[{GDestroy\+Notify}]{data\+\_\+free }\end{DoxyParamCaption})}



Initiates a store call to the storage service. 

If the service is not currently available, the call will be cached and processed when the service is started.


\begin{DoxyParams}{Parameters}
{\em srvc} & the storage service \\
\hline
{\em item} & storage unit to save \\
\hline
{\em cb} & callback function when the load call completes \\
\hline
{\em data} & optional user data for callback \\
\hline
{\em data\+\_\+free} & optional cleanup function for user data \\
\hline
\end{DoxyParams}
\Hypertarget{mw__srvc__store_8h_af622a55188af247d9b15ba52fbc29e79}\label{mw__srvc__store_8h_af622a55188af247d9b15ba52fbc29e79} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_asBoolean@{mwStorageUnit\_asBoolean}}
\index{mwStorageUnit\_asBoolean@{mwStorageUnit\_asBoolean}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_asBoolean()}{mwStorageUnit\_asBoolean()}}
{\footnotesize\ttfamily gboolean mw\+Storage\+Unit\+\_\+as\+Boolean (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{,  }\item[{gboolean}]{val }\end{DoxyParamCaption})}



attempts to obtain a boolean value from a storage unit. 

If the unit is empty, or does not contain the type in a recongnizable format, val is returned instead \Hypertarget{mw__srvc__store_8h_a34f62dceef1c6ea21b0561335c8a6abb}\label{mw__srvc__store_8h_a34f62dceef1c6ea21b0561335c8a6abb} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_asInteger@{mwStorageUnit\_asInteger}}
\index{mwStorageUnit\_asInteger@{mwStorageUnit\_asInteger}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_asInteger()}{mwStorageUnit\_asInteger()}}
{\footnotesize\ttfamily guint32 mw\+Storage\+Unit\+\_\+as\+Integer (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{,  }\item[{guint32}]{val }\end{DoxyParamCaption})}



attempts to obtain a guint32 value from a storage unit. 

If the unit is empty, or does not contain the type in a recognizable format, val is returned instead \Hypertarget{mw__srvc__store_8h_ae4ff3ca0efcb88c6512dfc0e57b3febb}\label{mw__srvc__store_8h_ae4ff3ca0efcb88c6512dfc0e57b3febb} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_asOpaque@{mwStorageUnit\_asOpaque}}
\index{mwStorageUnit\_asOpaque@{mwStorageUnit\_asOpaque}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_asOpaque()}{mwStorageUnit\_asOpaque()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+as\+Opaque (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{ }\end{DoxyParamCaption})}



direct access to the opaque data backing the storage unit 

\Hypertarget{mw__srvc__store_8h_aded59b1050f8a9cf7d054c396acbf638}\label{mw__srvc__store_8h_aded59b1050f8a9cf7d054c396acbf638} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_asString@{mwStorageUnit\_asString}}
\index{mwStorageUnit\_asString@{mwStorageUnit\_asString}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_asString()}{mwStorageUnit\_asString()}}
{\footnotesize\ttfamily char \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+as\+String (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{ }\end{DoxyParamCaption})}



attempts to obtain a string value from a storage unit. 

If the unit is empty, or does not contain the type in a recognizable format, NULL is returned instead. Note that the string returned is a copy, and will need to be deallocated at some point. \Hypertarget{mw__srvc__store_8h_ae9acfeda591578400ae5defcce84010c}\label{mw__srvc__store_8h_ae9acfeda591578400ae5defcce84010c} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_free@{mwStorageUnit\_free}}
\index{mwStorageUnit\_free@{mwStorageUnit\_free}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_free()}{mwStorageUnit\_free()}}
{\footnotesize\ttfamily void mw\+Storage\+Unit\+\_\+free (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{ }\end{DoxyParamCaption})}



clears and frees a storage unit 

\Hypertarget{mw__srvc__store_8h_a3bb73476fc749ff3a4e8ab0c327a83ba}\label{mw__srvc__store_8h_a3bb73476fc749ff3a4e8ab0c327a83ba} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_getKey@{mwStorageUnit\_getKey}}
\index{mwStorageUnit\_getKey@{mwStorageUnit\_getKey}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_getKey()}{mwStorageUnit\_getKey()}}
{\footnotesize\ttfamily guint32 mw\+Storage\+Unit\+\_\+get\+Key (\begin{DoxyParamCaption}\item[{struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*}}]{ }\end{DoxyParamCaption})}



get the key for the given storage unit 

\Hypertarget{mw__srvc__store_8h_afb7c4b023f0577826f24cd7cd86840a1}\label{mw__srvc__store_8h_afb7c4b023f0577826f24cd7cd86840a1} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_new@{mwStorageUnit\_new}}
\index{mwStorageUnit\_new@{mwStorageUnit\_new}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_new()}{mwStorageUnit\_new()}}
{\footnotesize\ttfamily struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+new (\begin{DoxyParamCaption}\item[{guint32}]{key }\end{DoxyParamCaption})}



create an empty storage unit 

\Hypertarget{mw__srvc__store_8h_a9858e13f6ae5d67152b1e9a29e45467e}\label{mw__srvc__store_8h_a9858e13f6ae5d67152b1e9a29e45467e} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_newBoolean@{mwStorageUnit\_newBoolean}}
\index{mwStorageUnit\_newBoolean@{mwStorageUnit\_newBoolean}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_newBoolean()}{mwStorageUnit\_newBoolean()}}
{\footnotesize\ttfamily struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+new\+Boolean (\begin{DoxyParamCaption}\item[{guint32}]{key,  }\item[{gboolean}]{val }\end{DoxyParamCaption})}



creates a storage unit with the passed key, and an encapsulated boolean value 

\Hypertarget{mw__srvc__store_8h_a3098fd92d0acb320bd91373c978da112}\label{mw__srvc__store_8h_a3098fd92d0acb320bd91373c978da112} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_newInteger@{mwStorageUnit\_newInteger}}
\index{mwStorageUnit\_newInteger@{mwStorageUnit\_newInteger}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_newInteger()}{mwStorageUnit\_newInteger()}}
{\footnotesize\ttfamily struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+new\+Integer (\begin{DoxyParamCaption}\item[{guint32}]{key,  }\item[{guint32}]{val }\end{DoxyParamCaption})}

\Hypertarget{mw__srvc__store_8h_a602393c8aa38421f23429d693c1ca014}\label{mw__srvc__store_8h_a602393c8aa38421f23429d693c1ca014} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_newOpaque@{mwStorageUnit\_newOpaque}}
\index{mwStorageUnit\_newOpaque@{mwStorageUnit\_newOpaque}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_newOpaque()}{mwStorageUnit\_newOpaque()}}
{\footnotesize\ttfamily struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+new\+Opaque (\begin{DoxyParamCaption}\item[{guint32}]{key,  }\item[{struct \mbox{\hyperlink{structmwOpaque}{mw\+Opaque}} \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})}



creates a storage unit with the passed key, and a copy of data. 

\Hypertarget{mw__srvc__store_8h_a48e9bf6d63749aa0f2be8fe1e81a5457}\label{mw__srvc__store_8h_a48e9bf6d63749aa0f2be8fe1e81a5457} 
\index{mw\_srvc\_store.h@{mw\_srvc\_store.h}!mwStorageUnit\_newString@{mwStorageUnit\_newString}}
\index{mwStorageUnit\_newString@{mwStorageUnit\_newString}!mw\_srvc\_store.h@{mw\_srvc\_store.h}}
\doxysubsubsection{\texorpdfstring{mwStorageUnit\_newString()}{mwStorageUnit\_newString()}}
{\footnotesize\ttfamily struct mw\+Storage\+Unit \texorpdfstring{$\ast$}{*} mw\+Storage\+Unit\+\_\+new\+String (\begin{DoxyParamCaption}\item[{guint32}]{key,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{str }\end{DoxyParamCaption})}



creates a storage unit with the passed key, and an encapsulated string value. 

