\hypertarget{session__record_8h}{}\section{src/session\+\_\+record.h File Reference}
\label{session__record_8h}\index{src/session\+\_\+record.\+h@{src/session\+\_\+record.\+h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stddef.\+h$>$}\newline
{\ttfamily \#include \char`\"{}signal\+\_\+protocol\+\_\+types.\+h\char`\"{}}\newline
Include dependency graph for session\+\_\+record.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=297pt]{session__record_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{session__record_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{session__record_8h_a91b2e4215953dc90d5c208f918412be7}{session\+\_\+record\+\_\+create} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$record, \hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$state, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{session__record_8h_a141ac5337197f99fede4c77683e588b2}{session\+\_\+record\+\_\+serialize} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$buffer, const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
int \hyperlink{session__record_8h_a774cd7e0b4d65c86ad276767a5a378ff}{session\+\_\+record\+\_\+deserialize} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$record, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{session__record_8h_a77ecc52d22a6b79a3b70eb18bef3fe14}{session\+\_\+record\+\_\+copy} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$record, \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$other\+\_\+record, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{session__record_8h_a86ca2889b19a5f6da6a0ec41f5368414}{session\+\_\+record\+\_\+has\+\_\+session\+\_\+state} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} version, const \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$alice\+\_\+base\+\_\+key)
\item 
\hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$ \hyperlink{session__record_8h_a2e10b21cbc86351b57fafc42a98a9c31}{session\+\_\+record\+\_\+get\+\_\+state} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
void \hyperlink{session__record_8h_a8b445775ffedbff7cc07bde423d5feb3}{session\+\_\+record\+\_\+set\+\_\+state} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record, \hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$state)
\item 
\hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$ \hyperlink{session__record_8h_a33c51f185c3bb4a7e56a0ea00d7033ee}{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head} (const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
\hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$ \hyperlink{session__record_8h_a72c9c730d5f27082e1bf2fd3f4ff7589}{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element} (const \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$node)
\item 
\hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$ \hyperlink{session__record_8h_a611810eedfc1f1c2d5db5b922dad6f94}{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next} (const \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$node)
\item 
\hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$ \hyperlink{session__record_8h_ab9d2703b704f12e928aee66d18d2538b}{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record, \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$node)
\item 
int \hyperlink{session__record_8h_a31a26affde46bdab054ab0787c355984}{session\+\_\+record\+\_\+is\+\_\+fresh} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
int \hyperlink{session__record_8h_a7b92e428342f3f0d75cef45e373566e6}{session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
int \hyperlink{session__record_8h_ac03fd395beafbc691650b72c919d65f2}{session\+\_\+record\+\_\+promote\+\_\+state} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record, \hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$promoted\+\_\+state)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{session__record_8h_aab3bc77df605f67e153a95a8183710e1}{session\+\_\+record\+\_\+get\+\_\+user\+\_\+record} (const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
void \hyperlink{session__record_8h_a84cb3b6e47be5c1226911091b190b3f8}{session\+\_\+record\+\_\+set\+\_\+user\+\_\+record} (\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record, \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$user\+\_\+record)
\item 
void \hyperlink{session__record_8h_ae5ad7c771d37a76406766fb2f92132d3}{session\+\_\+record\+\_\+destroy} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$type)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\mbox{\Hypertarget{session__record_8h_a7b92e428342f3f0d75cef45e373566e6}\label{session__record_8h_a7b92e428342f3f0d75cef45e373566e6}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state@{session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state}}
\index{session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state@{session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state()}{session\_record\_archive\_current\_state()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+archive\+\_\+current\+\_\+state (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

Move the current session\+\_\+state into the list of \char`\"{}previous\char`\"{} session states, and replace the current session\+\_\+state with a fresh reset instance.

\begin{DoxyReturn}{Returns}
0 on success, negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{session__record_8h_a77ecc52d22a6b79a3b70eb18bef3fe14}\label{session__record_8h_a77ecc52d22a6b79a3b70eb18bef3fe14}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+copy@{session\+\_\+record\+\_\+copy}}
\index{session\+\_\+record\+\_\+copy@{session\+\_\+record\+\_\+copy}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+copy()}{session\_record\_copy()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$}]{record,  }\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{other\+\_\+record,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a91b2e4215953dc90d5c208f918412be7}\label{session__record_8h_a91b2e4215953dc90d5c208f918412be7}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+create@{session\+\_\+record\+\_\+create}}
\index{session\+\_\+record\+\_\+create@{session\+\_\+record\+\_\+create}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+create()}{session\_record\_create()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$}]{record,  }\item[{\hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$}]{state,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a774cd7e0b4d65c86ad276767a5a378ff}\label{session__record_8h_a774cd7e0b4d65c86ad276767a5a378ff}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+deserialize@{session\+\_\+record\+\_\+deserialize}}
\index{session\+\_\+record\+\_\+deserialize@{session\+\_\+record\+\_\+deserialize}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+deserialize()}{session\_record\_deserialize()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+deserialize (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$}]{record,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_ae5ad7c771d37a76406766fb2f92132d3}\label{session__record_8h_ae5ad7c771d37a76406766fb2f92132d3}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+destroy@{session\+\_\+record\+\_\+destroy}}
\index{session\+\_\+record\+\_\+destroy@{session\+\_\+record\+\_\+destroy}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+destroy()}{session\_record\_destroy()}}
{\footnotesize\ttfamily void session\+\_\+record\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{type }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a72c9c730d5f27082e1bf2fd3f4ff7589}\label{session__record_8h_a72c9c730d5f27082e1bf2fd3f4ff7589}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element}}
\index{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element()}{session\_record\_get\_previous\_states\_element()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state}$\ast$ session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+element (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$}]{node }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a33c51f185c3bb4a7e56a0ea00d7033ee}\label{session__record_8h_a33c51f185c3bb4a7e56a0ea00d7033ee}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head}}
\index{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head()}{session\_record\_get\_previous\_states\_head()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node}$\ast$ session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+head (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a611810eedfc1f1c2d5db5b922dad6f94}\label{session__record_8h_a611810eedfc1f1c2d5db5b922dad6f94}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next}}
\index{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next()}{session\_record\_get\_previous\_states\_next()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node}$\ast$ session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+next (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$}]{node }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_ab9d2703b704f12e928aee66d18d2538b}\label{session__record_8h_ab9d2703b704f12e928aee66d18d2538b}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove}}
\index{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove@{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove()}{session\_record\_get\_previous\_states\_remove()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node}$\ast$ session\+\_\+record\+\_\+get\+\_\+previous\+\_\+states\+\_\+remove (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record,  }\item[{\hyperlink{signal__protocol__types_8h_a3c706cb678c2b1a300420d2ed6b0ca8f}{session\+\_\+record\+\_\+state\+\_\+node} $\ast$}]{node }\end{DoxyParamCaption})}

Removes the specified node in the previous states list. 
\begin{DoxyParams}{Parameters}
{\em node} & the node to remove \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the node immediately following the removed node, or null if at the end of the list 
\end{DoxyReturn}
\mbox{\Hypertarget{session__record_8h_a2e10b21cbc86351b57fafc42a98a9c31}\label{session__record_8h_a2e10b21cbc86351b57fafc42a98a9c31}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+state@{session\+\_\+record\+\_\+get\+\_\+state}}
\index{session\+\_\+record\+\_\+get\+\_\+state@{session\+\_\+record\+\_\+get\+\_\+state}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+state()}{session\_record\_get\_state()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state}$\ast$ session\+\_\+record\+\_\+get\+\_\+state (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_aab3bc77df605f67e153a95a8183710e1}\label{session__record_8h_aab3bc77df605f67e153a95a8183710e1}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+get\+\_\+user\+\_\+record@{session\+\_\+record\+\_\+get\+\_\+user\+\_\+record}}
\index{session\+\_\+record\+\_\+get\+\_\+user\+\_\+record@{session\+\_\+record\+\_\+get\+\_\+user\+\_\+record}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+get\+\_\+user\+\_\+record()}{session\_record\_get\_user\_record()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ session\+\_\+record\+\_\+get\+\_\+user\+\_\+record (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a86ca2889b19a5f6da6a0ec41f5368414}\label{session__record_8h_a86ca2889b19a5f6da6a0ec41f5368414}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+has\+\_\+session\+\_\+state@{session\+\_\+record\+\_\+has\+\_\+session\+\_\+state}}
\index{session\+\_\+record\+\_\+has\+\_\+session\+\_\+state@{session\+\_\+record\+\_\+has\+\_\+session\+\_\+state}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+has\+\_\+session\+\_\+state()}{session\_record\_has\_session\_state()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+has\+\_\+session\+\_\+state (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{version,  }\item[{const \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{alice\+\_\+base\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a31a26affde46bdab054ab0787c355984}\label{session__record_8h_a31a26affde46bdab054ab0787c355984}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+is\+\_\+fresh@{session\+\_\+record\+\_\+is\+\_\+fresh}}
\index{session\+\_\+record\+\_\+is\+\_\+fresh@{session\+\_\+record\+\_\+is\+\_\+fresh}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+is\+\_\+fresh()}{session\_record\_is\_fresh()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+is\+\_\+fresh (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_ac03fd395beafbc691650b72c919d65f2}\label{session__record_8h_ac03fd395beafbc691650b72c919d65f2}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+promote\+\_\+state@{session\+\_\+record\+\_\+promote\+\_\+state}}
\index{session\+\_\+record\+\_\+promote\+\_\+state@{session\+\_\+record\+\_\+promote\+\_\+state}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+promote\+\_\+state()}{session\_record\_promote\_state()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+promote\+\_\+state (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record,  }\item[{\hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$}]{promoted\+\_\+state }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a141ac5337197f99fede4c77683e588b2}\label{session__record_8h_a141ac5337197f99fede4c77683e588b2}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+serialize@{session\+\_\+record\+\_\+serialize}}
\index{session\+\_\+record\+\_\+serialize@{session\+\_\+record\+\_\+serialize}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+serialize()}{session\_record\_serialize()}}
{\footnotesize\ttfamily int session\+\_\+record\+\_\+serialize (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$$\ast$}]{buffer,  }\item[{const \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a8b445775ffedbff7cc07bde423d5feb3}\label{session__record_8h_a8b445775ffedbff7cc07bde423d5feb3}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+set\+\_\+state@{session\+\_\+record\+\_\+set\+\_\+state}}
\index{session\+\_\+record\+\_\+set\+\_\+state@{session\+\_\+record\+\_\+set\+\_\+state}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+set\+\_\+state()}{session\_record\_set\_state()}}
{\footnotesize\ttfamily void session\+\_\+record\+\_\+set\+\_\+state (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record,  }\item[{\hyperlink{signal__protocol__types_8h_a1a0fb11eb762bbf0da7e0b771c5a78c8}{session\+\_\+state} $\ast$}]{state }\end{DoxyParamCaption})}

\mbox{\Hypertarget{session__record_8h_a84cb3b6e47be5c1226911091b190b3f8}\label{session__record_8h_a84cb3b6e47be5c1226911091b190b3f8}} 
\index{session\+\_\+record.\+h@{session\+\_\+record.\+h}!session\+\_\+record\+\_\+set\+\_\+user\+\_\+record@{session\+\_\+record\+\_\+set\+\_\+user\+\_\+record}}
\index{session\+\_\+record\+\_\+set\+\_\+user\+\_\+record@{session\+\_\+record\+\_\+set\+\_\+user\+\_\+record}!session\+\_\+record.\+h@{session\+\_\+record.\+h}}
\subsubsection{\texorpdfstring{session\+\_\+record\+\_\+set\+\_\+user\+\_\+record()}{session\_record\_set\_user\_record()}}
{\footnotesize\ttfamily void session\+\_\+record\+\_\+set\+\_\+user\+\_\+record (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record,  }\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{user\+\_\+record }\end{DoxyParamCaption})}

