\hypertarget{group__session__builder_8h}{}\section{src/group\+\_\+session\+\_\+builder.h File Reference}
\label{group__session__builder_8h}\index{src/group\+\_\+session\+\_\+builder.\+h@{src/group\+\_\+session\+\_\+builder.\+h}}
{\ttfamily \#include \char`\"{}signal\+\_\+protocol\+\_\+types.\+h\char`\"{}}\newline
Include dependency graph for group\+\_\+session\+\_\+builder.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=265pt]{group__session__builder_8h__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__session__builder_8h_af085a67b79d1a3f2107e4ef6e0eaca47}{group\+\_\+session\+\_\+builder\+\_\+create} (\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$$\ast$builder, \hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$store, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{group__session__builder_8h_a5d30b8f68efb787c3c76b6b5319765e3}{group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session} (\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$builder, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, \hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$distribution\+\_\+message)
\item 
int \hyperlink{group__session__builder_8h_a1e08894e4b9bf07f57113f3f4e3f7410}{group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session} (\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$builder, \hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$distribution\+\_\+message, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name)
\item 
void \hyperlink{group__session__builder_8h_ab608d851122e7ae9d80b9a3f4b77e535}{group\+\_\+session\+\_\+builder\+\_\+free} (\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$builder)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__session__builder_8h_af085a67b79d1a3f2107e4ef6e0eaca47}\label{group__session__builder_8h_af085a67b79d1a3f2107e4ef6e0eaca47}} 
\index{group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}!group\+\_\+session\+\_\+builder\+\_\+create@{group\+\_\+session\+\_\+builder\+\_\+create}}
\index{group\+\_\+session\+\_\+builder\+\_\+create@{group\+\_\+session\+\_\+builder\+\_\+create}!group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}}
\subsubsection{\texorpdfstring{group\+\_\+session\+\_\+builder\+\_\+create()}{group\_session\_builder\_create()}}
{\footnotesize\ttfamily int group\+\_\+session\+\_\+builder\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$$\ast$}]{builder,  }\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{store,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

Constructs a group session builder.

The store and global contexts must remain valid for the lifetime of the session builder.

When finished, free the returned instance by calling \hyperlink{group__session__builder_8h_ab608d851122e7ae9d80b9a3f4b77e535}{group\+\_\+session\+\_\+builder\+\_\+free()}.


\begin{DoxyParams}{Parameters}
{\em builder} & set to a freshly allocated group session builder instance \\
\hline
{\em store} & the signal\+\_\+protocol\+\_\+store\+\_\+context to store all state information in \\
\hline
{\em global\+\_\+context} & the global library context \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, or negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{group__session__builder_8h_a1e08894e4b9bf07f57113f3f4e3f7410}\label{group__session__builder_8h_a1e08894e4b9bf07f57113f3f4e3f7410}} 
\index{group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}!group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session@{group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session}}
\index{group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session@{group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session}!group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}}
\subsubsection{\texorpdfstring{group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session()}{group\_session\_builder\_create\_session()}}
{\footnotesize\ttfamily int group\+\_\+session\+\_\+builder\+\_\+create\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$}]{builder,  }\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$}]{distribution\+\_\+message,  }\item[{const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$}]{sender\+\_\+key\+\_\+name }\end{DoxyParamCaption})}

Construct a group session for sending messages.


\begin{DoxyParams}{Parameters}
{\em distribution\+\_\+message} & a distribution message to be allocated and populated \\
\hline
{\em sender\+\_\+key\+\_\+name} & the (group\+Id, sender\+Id, device\+Id) tuple. In this case, the sender should be the caller \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, or negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{group__session__builder_8h_ab608d851122e7ae9d80b9a3f4b77e535}\label{group__session__builder_8h_ab608d851122e7ae9d80b9a3f4b77e535}} 
\index{group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}!group\+\_\+session\+\_\+builder\+\_\+free@{group\+\_\+session\+\_\+builder\+\_\+free}}
\index{group\+\_\+session\+\_\+builder\+\_\+free@{group\+\_\+session\+\_\+builder\+\_\+free}!group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}}
\subsubsection{\texorpdfstring{group\+\_\+session\+\_\+builder\+\_\+free()}{group\_session\_builder\_free()}}
{\footnotesize\ttfamily void group\+\_\+session\+\_\+builder\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$}]{builder }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group__session__builder_8h_a5d30b8f68efb787c3c76b6b5319765e3}\label{group__session__builder_8h_a5d30b8f68efb787c3c76b6b5319765e3}} 
\index{group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}!group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session@{group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session}}
\index{group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session@{group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session}!group\+\_\+session\+\_\+builder.\+h@{group\+\_\+session\+\_\+builder.\+h}}
\subsubsection{\texorpdfstring{group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session()}{group\_session\_builder\_process\_session()}}
{\footnotesize\ttfamily int group\+\_\+session\+\_\+builder\+\_\+process\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac164d276330d2c488accf686984e6322}{group\+\_\+session\+\_\+builder} $\ast$}]{builder,  }\item[{const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$}]{sender\+\_\+key\+\_\+name,  }\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{distribution\+\_\+message }\end{DoxyParamCaption})}

Construct a group session for receiving messages from sender\+Key\+Name.


\begin{DoxyParams}{Parameters}
{\em sender\+\_\+key\+\_\+name} & the (group\+Id, sender\+Id, device\+Id) tuple associated with the sender\+\_\+key\+\_\+distribution\+\_\+message \\
\hline
{\em distribution\+\_\+message} & a received sender\+\_\+key\+\_\+distribution\+\_\+message \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, or negative on failure 
\end{DoxyReturn}
