\hypertarget{structsignal__protocol__sender__key__store}{}\section{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store Struct Reference}
\label{structsignal__protocol__sender__key__store}\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}


{\ttfamily \#include $<$signal\+\_\+protocol.\+h$>$}

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int($\ast$ \hyperlink{structsignal__protocol__sender__key__store_a519b09cb4d565636468baabdfe5a163b}{store\+\_\+sender\+\_\+key} )(const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$record, size\+\_\+t record\+\_\+len, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$user\+\_\+record, size\+\_\+t user\+\_\+record\+\_\+len, void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})
\item 
int($\ast$ \hyperlink{structsignal__protocol__sender__key__store_a86d79dce6373db962bcba67a2d5eabbe}{load\+\_\+sender\+\_\+key} )(\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$record, \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$user\+\_\+record, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})
\item 
void($\ast$ \hyperlink{structsignal__protocol__sender__key__store_aff3fc05d69acc3eb8074e6d587bbffe2}{destroy\+\_\+func} )(void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})
\item 
void $\ast$ \hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 661 of file signal\+\_\+protocol.\+h.



\subsection{Field Documentation}
\mbox{\Hypertarget{structsignal__protocol__sender__key__store_aff3fc05d69acc3eb8074e6d587bbffe2}\label{structsignal__protocol__sender__key__store_aff3fc05d69acc3eb8074e6d587bbffe2}} 
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}!destroy\+\_\+func@{destroy\+\_\+func}}
\index{destroy\+\_\+func@{destroy\+\_\+func}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}
\subsubsection{\texorpdfstring{destroy\+\_\+func}{destroy\_func}}
{\footnotesize\ttfamily void($\ast$ destroy\+\_\+func) (void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})}

Function called to perform cleanup when the data store context is being destroyed. 

Definition at line 697 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{structsignal__protocol__sender__key__store_a86d79dce6373db962bcba67a2d5eabbe}\label{structsignal__protocol__sender__key__store_a86d79dce6373db962bcba67a2d5eabbe}} 
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}!load\+\_\+sender\+\_\+key@{load\+\_\+sender\+\_\+key}}
\index{load\+\_\+sender\+\_\+key@{load\+\_\+sender\+\_\+key}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}
\subsubsection{\texorpdfstring{load\+\_\+sender\+\_\+key}{load\_sender\_key}}
{\footnotesize\ttfamily int($\ast$ load\+\_\+sender\+\_\+key) (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$record, \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$user\+\_\+record, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})}

Returns a copy of the sender key record corresponding to the (group\+Id + sender\+Id + device\+Id) tuple.


\begin{DoxyParams}{Parameters}
{\em record} & pointer to a newly allocated buffer containing the record, if found. Unset if no record was found. The Signal Protocol library is responsible for freeing this buffer. \\
\hline
{\em user\+\_\+record} & pointer to a newly allocated buffer containing application-\/specific data stored alongside the record. If no such data exists, then this pointer may be left unset. The Signal Protocol library is responsible for freeing this buffer. \\
\hline
{\em sender\+\_\+key\+\_\+name} & the (group\+Id + sender\+Id + device\+Id) tuple \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if the record was loaded, 0 if the record was not found, negative on failure 
\end{DoxyReturn}


Definition at line 691 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{structsignal__protocol__sender__key__store_a519b09cb4d565636468baabdfe5a163b}\label{structsignal__protocol__sender__key__store_a519b09cb4d565636468baabdfe5a163b}} 
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}!store\+\_\+sender\+\_\+key@{store\+\_\+sender\+\_\+key}}
\index{store\+\_\+sender\+\_\+key@{store\+\_\+sender\+\_\+key}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}
\subsubsection{\texorpdfstring{store\+\_\+sender\+\_\+key}{store\_sender\_key}}
{\footnotesize\ttfamily int($\ast$ store\+\_\+sender\+\_\+key) (const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$record, size\+\_\+t record\+\_\+len, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$user\+\_\+record, size\+\_\+t user\+\_\+record\+\_\+len, void $\ast$\hyperlink{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}{user\+\_\+data})}

Store a serialized sender key record for a given (group\+Id + sender\+Id + device\+Id) tuple.


\begin{DoxyParams}{Parameters}
{\em sender\+\_\+key\+\_\+name} & the (group\+Id + sender\+Id + device\+Id) tuple \\
\hline
{\em record} & pointer to a buffer containing the serialized record \\
\hline
{\em record\+\_\+len} & length of the serialized record \\
\hline
{\em user\+\_\+record} & pointer to a buffer containing application specific data to be stored alongside the serialized record. If no such data exists, then this pointer will be null. \\
\hline
{\em user\+\_\+record\+\_\+len} & length of the application specific data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative on failure 
\end{DoxyReturn}


Definition at line 675 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}\label{structsignal__protocol__sender__key__store_a0f53d287ac7c064d1a49d4bd93ca1cb9}} 
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}!user\+\_\+data@{user\+\_\+data}}
\index{user\+\_\+data@{user\+\_\+data}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}
\subsubsection{\texorpdfstring{user\+\_\+data}{user\_data}}
{\footnotesize\ttfamily void$\ast$ user\+\_\+data}

User data pointer 

Definition at line 700 of file signal\+\_\+protocol.\+h.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/\hyperlink{signal__protocol_8h}{signal\+\_\+protocol.\+h}\end{DoxyCompactItemize}
