\hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage}{}\doxysection{io.\+agora.\+rtm.\+Rtm\+Storage Class Reference}
\label{classio_1_1agora_1_1rtm_1_1_rtm_storage}\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a1cb1db072b6875fad15ae15b50caed6d}{set\+Channel\+Metadata}} (String channel\+Name, \mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}} channel\+Type, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, String lock\+Name, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a11d5fb885d2f12fca38963d25bfce5aa}{update\+Channel\+Metadata}} (String channel\+Name, \mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}} channel\+Type, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, String lock\+Name, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a84a4848cbc691cd64310c187cb4770f3}{remove\+Channel\+Metadata}} (String channel\+Name, \mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}} channel\+Type, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, String lock\+Name, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_ac770c2d8a8f506270e5f7509a2fd9013}{get\+Channel\+Metadata}} (String channel\+Name, \mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}} channel\+Type, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a167a766cd13866a3ea52ae725b9e0efc}{set\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_ace7c55f1bd8f405323204b42bab63918}{update\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_ade9d26b43aee29f41ef2389017e3e737}{remove\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data, \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}} options, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a684298e04d2949f05f9e40681e892a6b}{get\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_abdbf20bd87919c6b63802fb3786cdaa0}{subscribe\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\item 
abstract void \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage_a7ac19353ed64ae6a693b6194d8a93cd7}{unsubscribe\+User\+Metadata}} (String user\+Id, \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$ result\+Callback)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_rtm_storage}{Rtm\+Storage}} class.

This class provides the rtm storage methods that can be invoked by your app. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a1cb1db072b6875fad15ae15b50caed6d}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a1cb1db072b6875fad15ae15b50caed6d}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!setChannelMetadata@{setChannelMetadata}}
\index{setChannelMetadata@{setChannelMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{setChannelMetadata()}{setChannelMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+set\+Channel\+Metadata (\begin{DoxyParamCaption}\item[{String}]{channel\+Name,  }\item[{\mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}}}]{channel\+Type,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{String}]{lock\+Name,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Set the metadata of a specified channel.


\begin{DoxyParams}{Parameters}
{\em channel\+Name} & The name of the channel \\
\hline
{\em channel\+Type} & The type of the channel \mbox{\hyperlink{}{Rtm\+Channel\+Type}} \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em lock\+Name} & lock for operate channel metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a11d5fb885d2f12fca38963d25bfce5aa}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a11d5fb885d2f12fca38963d25bfce5aa}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!updateChannelMetadata@{updateChannelMetadata}}
\index{updateChannelMetadata@{updateChannelMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{updateChannelMetadata()}{updateChannelMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+update\+Channel\+Metadata (\begin{DoxyParamCaption}\item[{String}]{channel\+Name,  }\item[{\mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}}}]{channel\+Type,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{String}]{lock\+Name,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Update the metadata of a specified channel.


\begin{DoxyParams}{Parameters}
{\em channel\+Name} & The name of the channel \\
\hline
{\em channel\+Type} & The type of the channel \mbox{\hyperlink{}{Rtm\+Channel\+Type}} \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em lock\+Name} & lock for operate channel metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a84a4848cbc691cd64310c187cb4770f3}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a84a4848cbc691cd64310c187cb4770f3}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!removeChannelMetadata@{removeChannelMetadata}}
\index{removeChannelMetadata@{removeChannelMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{removeChannelMetadata()}{removeChannelMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+remove\+Channel\+Metadata (\begin{DoxyParamCaption}\item[{String}]{channel\+Name,  }\item[{\mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}}}]{channel\+Type,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{String}]{lock\+Name,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Remove the metadata of a specified channel.


\begin{DoxyParams}{Parameters}
{\em channel\+Name} & The name of the channel \\
\hline
{\em channel\+Type} & The type of the channel \mbox{\hyperlink{}{Rtm\+Channel\+Type}} \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em lock\+Name} & lock for operate channel metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_ac770c2d8a8f506270e5f7509a2fd9013}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_ac770c2d8a8f506270e5f7509a2fd9013}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!getChannelMetadata@{getChannelMetadata}}
\index{getChannelMetadata@{getChannelMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{getChannelMetadata()}{getChannelMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+get\+Channel\+Metadata (\begin{DoxyParamCaption}\item[{String}]{channel\+Name,  }\item[{\mbox{\hyperlink{enumio_1_1agora_1_1rtm_1_1_rtm_constants_1_1_rtm_channel_type}{Rtm\+Channel\+Type}}}]{channel\+Type,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Get the metadata of a specified channel.


\begin{DoxyParams}{Parameters}
{\em channel\+Name} & The name of the channel \\
\hline
{\em channel\+Type} & The type of the channel \mbox{\hyperlink{}{Rtm\+Channel\+Type}} \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a167a766cd13866a3ea52ae725b9e0efc}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a167a766cd13866a3ea52ae725b9e0efc}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!setUserMetadata@{setUserMetadata}}
\index{setUserMetadata@{setUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{setUserMetadata()}{setUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+set\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Set the metadata of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_ace7c55f1bd8f405323204b42bab63918}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_ace7c55f1bd8f405323204b42bab63918}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!updateUserMetadata@{updateUserMetadata}}
\index{updateUserMetadata@{updateUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{updateUserMetadata()}{updateUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+update\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Update the metadata of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_ade9d26b43aee29f41ef2389017e3e737}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_ade9d26b43aee29f41ef2389017e3e737}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!removeUserMetadata@{removeUserMetadata}}
\index{removeUserMetadata@{removeUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{removeUserMetadata()}{removeUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+remove\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}}}]{data,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata_options}{Metadata\+Options}}}]{options,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Remove the metadata of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user \\
\hline
{\em data} & \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} data \\
\hline
{\em options} & The options of operate metadata \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a684298e04d2949f05f9e40681e892a6b}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a684298e04d2949f05f9e40681e892a6b}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!getUserMetadata@{getUserMetadata}}
\index{getUserMetadata@{getUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{getUserMetadata()}{getUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+get\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ \mbox{\hyperlink{classio_1_1agora_1_1rtm_1_1_metadata}{Metadata}} $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Get the metadata of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user. \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_abdbf20bd87919c6b63802fb3786cdaa0}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_abdbf20bd87919c6b63802fb3786cdaa0}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!subscribeUserMetadata@{subscribeUserMetadata}}
\index{subscribeUserMetadata@{subscribeUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{subscribeUserMetadata()}{subscribeUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+subscribe\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

Subscribe the metadata update event of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user. \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classio_1_1agora_1_1rtm_1_1_rtm_storage_a7ac19353ed64ae6a693b6194d8a93cd7}\label{classio_1_1agora_1_1rtm_1_1_rtm_storage_a7ac19353ed64ae6a693b6194d8a93cd7}} 
\index{io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}!unsubscribeUserMetadata@{unsubscribeUserMetadata}}
\index{unsubscribeUserMetadata@{unsubscribeUserMetadata}!io.agora.rtm.RtmStorage@{io.agora.rtm.RtmStorage}}
\doxysubsubsection{\texorpdfstring{unsubscribeUserMetadata()}{unsubscribeUserMetadata()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtm.\+Rtm\+Storage.\+unsubscribe\+User\+Metadata (\begin{DoxyParamCaption}\item[{String}]{user\+Id,  }\item[{\mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}}$<$ Void $>$}]{result\+Callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}

unsubscribe the metadata update event of a specified user.


\begin{DoxyParams}{Parameters}
{\em user\+Id} & The user ID of the specified user. \\
\hline
{\em result\+Callback} & A \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback}{Result\+Callback}} object.
\begin{DoxyItemize}
\item Success\+: will receives the \mbox{\hyperlink{}{Result\+Callback\#on\+Success(\+Object)}} callback.
\item Failure\+: will receives the \mbox{\hyperlink{interfaceio_1_1agora_1_1rtm_1_1_result_callback_a1f9145a3eb119e32cfc0afa938062396}{Result\+Callback\#on\+Failure(\+Error\+Info)}} callback. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
