\hypertarget{mw__srvc__store_8h}{
\section{mw\_\-srvc\_\-store.h File Reference}
\label{mw__srvc__store_8h}\index{mw\_\-srvc\_\-store.h@{mw\_\-srvc\_\-store.h}}
}


{\tt \#include $<$glib.h$>$}\par
{\tt \#include \char`\"{}mw\_\-common.h\char`\"{}}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{mw__srvc__store_8h_6befc88185dd58cc16e704e4c4c78322}{KEY\_\-IS\_\-LOTUS\_\-RESERVED}(key)~(((guint32) key) $<$= (LOTUS\_\-RESERVED\_\-LIMIT))
\begin{CompactList}\small\item\em Check if a key is in the range of Lotus reserved keys. \item\end{CompactList}\item 
\#define \hyperlink{mw__srvc__store_8h_8bc869f420049a0bd5d0b1c2de7cc89e}{LOTUS\_\-RESERVED\_\-LIMIT}~0x186a0
\begin{CompactList}\small\item\em The upper limit of reserved Lotus keys. \item\end{CompactList}\item 
\#define \hyperlink{mw__srvc__store_8h_25f65d69ffed33ef673c8e152106549b}{mwService\_\-STORAGE}~0x00000018
\begin{CompactList}\small\item\em Type identifier for the storage service. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef void($\ast$ \hyperlink{mw__srvc__store_8h_5cebb99048ee65b6f3fd98c3eaf82021}{mwStorageCallback} )(struct \hyperlink{structmwServiceStorage}{mwServiceStorage} $\ast$srvc, guint32 result, struct mwStorageUnit $\ast$item, gpointer data)
\begin{CompactList}\small\item\em Appropriate function type for load and store callbacks. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88}{mwStorageKey} \{ \par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888f07f37098cbd1582954f3b060dd13ab}{mwStore\_\-AWARE\_\-LIST} =  0x00000000, 
\par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f8876cfbb82cc77f969260bf3ee1ab93950}{mwStore\_\-INVITE\_\-CHAT} =  0x00000006, 
\par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88d97fb6917035f4ed4ca6576d8671b2d6}{mwStore\_\-INVITE\_\-MEETING} =  0x0000000e, 
\par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888a037320a3eaff77120fee66eae5445b}{mwStore\_\-AWAY\_\-MESSAGES} =  0x00000050, 
\par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f882b1d1f0de29ac8b4f309bff5c58735f1}{mwStore\_\-BUSY\_\-MESSAGES} =  0x0000005a, 
\par
\hyperlink{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88c3697e70cff492cbcbd2aca8fbc82f84}{mwStore\_\-ACTIVE\_\-MESSAGES} =  0x00000064
 \}
\begin{CompactList}\small\item\em Some common keys storage keys. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
void \hyperlink{mw__srvc__store_8h_8e323cfbdf1f9d3af18d7d27df3b603f}{mwServiceStorage\_\-load} (struct \hyperlink{structmwServiceStorage}{mwServiceStorage} $\ast$srvc, struct mwStorageUnit $\ast$item, \hyperlink{mw__srvc__store_8h_5cebb99048ee65b6f3fd98c3eaf82021}{mwStorageCallback} cb, gpointer data, GDestroyNotify data\_\-free)
\begin{CompactList}\small\item\em Initiates a load call to the storage service. \item\end{CompactList}\item 
struct \hyperlink{structmwServiceStorage}{mwServiceStorage} $\ast$ \hyperlink{mw__srvc__store_8h_8f9571a1e27918cc057606600dd2cf25}{mwServiceStorage\_\-new} (struct \hyperlink{structmwSession}{mwSession} $\ast$)
\begin{CompactList}\small\item\em Allocates and initializes a storage service instance for use on the passed session. \item\end{CompactList}\item 
void \hyperlink{mw__srvc__store_8h_43dafaf7dd5d09e4a1c92ec44bd5a842}{mwServiceStorage\_\-save} (struct \hyperlink{structmwServiceStorage}{mwServiceStorage} $\ast$srvc, struct mwStorageUnit $\ast$item, \hyperlink{mw__srvc__store_8h_5cebb99048ee65b6f3fd98c3eaf82021}{mwStorageCallback} cb, gpointer data, GDestroyNotify data\_\-free)
\begin{CompactList}\small\item\em Initiates a store call to the storage service. \item\end{CompactList}\item 
gboolean \hyperlink{mw__srvc__store_8h_f622a55188af247d9b15ba52fbc29e79}{mwStorageUnit\_\-asBoolean} (struct mwStorageUnit $\ast$, gboolean val)
\begin{CompactList}\small\item\em attempts to obtain a boolean value from a storage unit. \item\end{CompactList}\item 
guint32 \hyperlink{mw__srvc__store_8h_34f62dceef1c6ea21b0561335c8a6abb}{mwStorageUnit\_\-asInteger} (struct mwStorageUnit $\ast$, guint32 val)
\begin{CompactList}\small\item\em attempts to obtain a guint32 value from a storage unit. \item\end{CompactList}\item 
struct \hyperlink{structmwOpaque}{mwOpaque} $\ast$ \hyperlink{mw__srvc__store_8h_c565c58bfa3b3a5094136abe38fbdaf6}{mwStorageUnit\_\-asOpaque} (struct mwStorageUnit $\ast$)
\begin{CompactList}\small\item\em direct access to the opaque data backing the storage unit \item\end{CompactList}\item 
char $\ast$ \hyperlink{mw__srvc__store_8h_8c05a957993e34a0434052e3fced36b3}{mwStorageUnit\_\-asString} (struct mwStorageUnit $\ast$)
\begin{CompactList}\small\item\em attempts to obtain a string value from a storage unit. \item\end{CompactList}\item 
void \hyperlink{mw__srvc__store_8h_e9acfeda591578400ae5defcce84010c}{mwStorageUnit\_\-free} (struct mwStorageUnit $\ast$)
\begin{CompactList}\small\item\em clears and frees a storage unit \item\end{CompactList}\item 
guint32 \hyperlink{mw__srvc__store_8h_3bb73476fc749ff3a4e8ab0c327a83ba}{mwStorageUnit\_\-getKey} (struct mwStorageUnit $\ast$)
\begin{CompactList}\small\item\em get the key for the given storage unit \item\end{CompactList}\item 
struct mwStorageUnit $\ast$ \hyperlink{mw__srvc__store_8h_319e221738360e4c784c2cb18df37f25}{mwStorageUnit\_\-new} (guint32 key)
\begin{CompactList}\small\item\em create an empty storage unit \item\end{CompactList}\item 
struct mwStorageUnit $\ast$ \hyperlink{mw__srvc__store_8h_e2b9db3a516a5057949f7318eb32ab62}{mwStorageUnit\_\-newBoolean} (guint32 key, gboolean val)
\begin{CompactList}\small\item\em creates a storage unit with the passed key, and an encapsulated boolean value \item\end{CompactList}\item 
struct mwStorageUnit $\ast$ \hyperlink{mw__srvc__store_8h_3c11b0a807b72ff23a829a9f4bc26be8}{mwStorageUnit\_\-newInteger} (guint32 key, guint32 val)
\item 
struct mwStorageUnit $\ast$ \hyperlink{mw__srvc__store_8h_0c11cfb40fc2a756241e3d8a642ef2c0}{mwStorageUnit\_\-newOpaque} (guint32 key, struct \hyperlink{structmwOpaque}{mwOpaque} $\ast$data)
\begin{CompactList}\small\item\em creates a storage unit with the passed key, and a copy of data. \item\end{CompactList}\item 
struct mwStorageUnit $\ast$ \hyperlink{mw__srvc__store_8h_97270b9020bd5185ad17a803fbf8f91a}{mwStorageUnit\_\-newString} (guint32 key, const char $\ast$str)
\begin{CompactList}\small\item\em creates a storage unit with the passed key, and an encapsulated string value. \item\end{CompactList}\end{CompactItemize}


\subsection{Define Documentation}
\hypertarget{mw__srvc__store_8h_6befc88185dd58cc16e704e4c4c78322}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define KEY\_\-IS\_\-LOTUS\_\-RESERVED(key)~(((guint32) key) $<$= (LOTUS\_\-RESERVED\_\-LIMIT))}}
\label{mw__srvc__store_8h_6befc88185dd58cc16e704e4c4c78322}


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

\hypertarget{mw__srvc__store_8h_8bc869f420049a0bd5d0b1c2de7cc89e}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LOTUS\_\-RESERVED\_\-LIMIT~0x186a0}}
\label{mw__srvc__store_8h_8bc869f420049a0bd5d0b1c2de7cc89e}


The upper limit of reserved Lotus keys. 

\hypertarget{mw__srvc__store_8h_25f65d69ffed33ef673c8e152106549b}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define mwService\_\-STORAGE~0x00000018}}
\label{mw__srvc__store_8h_25f65d69ffed33ef673c8e152106549b}


Type identifier for the storage service. 



\subsection{Typedef Documentation}
\hypertarget{mw__srvc__store_8h_5cebb99048ee65b6f3fd98c3eaf82021}{
\index{mw\_\-srvc\_\-store.h@{mw\_\-srvc\_\-store.h}!mwStorageCallback@{mwStorageCallback}}
\index{mwStorageCallback@{mwStorageCallback}!mw_srvc_store.h@{mw\_\-srvc\_\-store.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ {\bf mwStorageCallback})(struct {\bf mwServiceStorage} $\ast$srvc, guint32 result, struct mwStorageUnit $\ast$item, gpointer data)}}
\label{mw__srvc__store_8h_5cebb99048ee65b6f3fd98c3eaf82021}


Appropriate function type for load and store callbacks. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em srvc}]the storage service \item[{\em result}]the result value of the load or store call \item[{\em item}]the storage unit loaded or saved \item[{\em data}]optional user data \end{description}
\end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88}{
\index{mw\_\-srvc\_\-store.h@{mw\_\-srvc\_\-store.h}!mwStorageKey@{mwStorageKey}}
\index{mwStorageKey@{mwStorageKey}!mw_srvc_store.h@{mw\_\-srvc\_\-store.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf mwStorageKey}}}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88}


Some common keys storage keys. 

Anything in the range 0x00 to 0x186a0 (100000) is reserved for use by the Lotus clients. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888f07f37098cbd1582954f3b060dd13ab}{
mwStore\_\-AWARE\_\-LIST}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888f07f37098cbd1582954f3b060dd13ab}
}]The buddy list, in the Sametime .dat file format. 

String \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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f8876cfbb82cc77f969260bf3ee1ab93950}{
mwStore\_\-INVITE\_\-CHAT}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f8876cfbb82cc77f969260bf3ee1ab93950}
}]Default text for chat invitations. 

String \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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88d97fb6917035f4ed4ca6576d8671b2d6}{
mwStore\_\-INVITE\_\-MEETING}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88d97fb6917035f4ed4ca6576d8671b2d6}
}]Default text for meeting invitations. 

String \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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888a037320a3eaff77120fee66eae5445b}{
mwStore\_\-AWAY\_\-MESSAGES}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f888a037320a3eaff77120fee66eae5445b}
}]Last five Away messages, separated by semicolon. 

String \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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f882b1d1f0de29ac8b4f309bff5c58735f1}{
mwStore\_\-BUSY\_\-MESSAGES}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f882b1d1f0de29ac8b4f309bff5c58735f1}
}]Last five Busy (DND) messages, separated by semicolon. 

String \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}}\item[{\em 
\hypertarget{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88c3697e70cff492cbcbd2aca8fbc82f84}{
mwStore\_\-ACTIVE\_\-MESSAGES}
\label{mw__srvc__store_8h_b490c5f87cc36273720570b9bb2b3f88c3697e70cff492cbcbd2aca8fbc82f84}
}]Last five Active messages, separated by semicolon. 

String \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{mw__srvc__store_8h_8e323cfbdf1f9d3af18d7d27df3b603f}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mwServiceStorage\_\-load (struct {\bf mwServiceStorage} $\ast$ {\em srvc}, \/  struct mwStorageUnit $\ast$ {\em item}, \/  {\bf mwStorageCallback} {\em cb}, \/  gpointer {\em data}, \/  GDestroyNotify {\em data\_\-free})}}
\label{mw__srvc__store_8h_8e323cfbdf1f9d3af18d7d27df3b603f}


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{Desc}
\item[Parameters:]
\begin{description}
\item[{\em srvc}]the storage service \item[{\em item}]storage unit to load \item[{\em cb}]callback function when the load call completes \item[{\em data}]user data for callback \item[{\em data\_\-free}]optional cleanup function for user data \end{description}
\end{Desc}
\hypertarget{mw__srvc__store_8h_8f9571a1e27918cc057606600dd2cf25}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct {\bf mwServiceStorage}$\ast$ mwServiceStorage\_\-new (struct {\bf mwSession} $\ast$)\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_8f9571a1e27918cc057606600dd2cf25}


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

\hypertarget{mw__srvc__store_8h_43dafaf7dd5d09e4a1c92ec44bd5a842}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mwServiceStorage\_\-save (struct {\bf mwServiceStorage} $\ast$ {\em srvc}, \/  struct mwStorageUnit $\ast$ {\em item}, \/  {\bf mwStorageCallback} {\em cb}, \/  gpointer {\em data}, \/  GDestroyNotify {\em data\_\-free})}}
\label{mw__srvc__store_8h_43dafaf7dd5d09e4a1c92ec44bd5a842}


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{Desc}
\item[Parameters:]
\begin{description}
\item[{\em srvc}]the storage service \item[{\em item}]storage unit to save \item[{\em cb}]callback function when the load call completes \item[{\em data}]optional user data for callback \item[{\em data\_\-free}]optional cleanup function for user data \end{description}
\end{Desc}
\hypertarget{mw__srvc__store_8h_f622a55188af247d9b15ba52fbc29e79}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}gboolean mwStorageUnit\_\-asBoolean (struct mwStorageUnit $\ast$, \/  gboolean {\em val})}}
\label{mw__srvc__store_8h_f622a55188af247d9b15ba52fbc29e79}


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_34f62dceef1c6ea21b0561335c8a6abb}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}guint32 mwStorageUnit\_\-asInteger (struct mwStorageUnit $\ast$, \/  guint32 {\em val})}}
\label{mw__srvc__store_8h_34f62dceef1c6ea21b0561335c8a6abb}


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_c565c58bfa3b3a5094136abe38fbdaf6}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct {\bf mwOpaque}$\ast$ mwStorageUnit\_\-asOpaque (struct mwStorageUnit $\ast$)\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_c565c58bfa3b3a5094136abe38fbdaf6}


direct access to the opaque data backing the storage unit 

\hypertarget{mw__srvc__store_8h_8c05a957993e34a0434052e3fced36b3}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mwStorageUnit\_\-asString (struct mwStorageUnit $\ast$)}}
\label{mw__srvc__store_8h_8c05a957993e34a0434052e3fced36b3}


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_e9acfeda591578400ae5defcce84010c}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mwStorageUnit\_\-free (struct mwStorageUnit $\ast$)}}
\label{mw__srvc__store_8h_e9acfeda591578400ae5defcce84010c}


clears and frees a storage unit 

\hypertarget{mw__srvc__store_8h_3bb73476fc749ff3a4e8ab0c327a83ba}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}guint32 mwStorageUnit\_\-getKey (struct mwStorageUnit $\ast$)}}
\label{mw__srvc__store_8h_3bb73476fc749ff3a4e8ab0c327a83ba}


get the key for the given storage unit 

\hypertarget{mw__srvc__store_8h_319e221738360e4c784c2cb18df37f25}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mwStorageUnit$\ast$ mwStorageUnit\_\-new (guint32 {\em key})\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_319e221738360e4c784c2cb18df37f25}


create an empty storage unit 

\hypertarget{mw__srvc__store_8h_e2b9db3a516a5057949f7318eb32ab62}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mwStorageUnit$\ast$ mwStorageUnit\_\-newBoolean (guint32 {\em key}, \/  gboolean {\em val})\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_e2b9db3a516a5057949f7318eb32ab62}


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

\hypertarget{mw__srvc__store_8h_3c11b0a807b72ff23a829a9f4bc26be8}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mwStorageUnit$\ast$ mwStorageUnit\_\-newInteger (guint32 {\em key}, \/  guint32 {\em val})\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_3c11b0a807b72ff23a829a9f4bc26be8}


\hypertarget{mw__srvc__store_8h_0c11cfb40fc2a756241e3d8a642ef2c0}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mwStorageUnit$\ast$ mwStorageUnit\_\-newOpaque (guint32 {\em key}, \/  struct {\bf mwOpaque} $\ast$ {\em data})\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_0c11cfb40fc2a756241e3d8a642ef2c0}


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

\hypertarget{mw__srvc__store_8h_97270b9020bd5185ad17a803fbf8f91a}{
\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}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mwStorageUnit$\ast$ mwStorageUnit\_\-newString (guint32 {\em key}, \/  const char $\ast$ {\em str})\hspace{0.3cm}{\tt  \mbox{[}read\mbox{]}}}}
\label{mw__srvc__store_8h_97270b9020bd5185ad17a803fbf8f91a}


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

