\hypertarget{sstore_8h}{\section{orte/mca/sstore/sstore.h File Reference}
\label{sstore_8h}\index{orte/mca/sstore/sstore.\+h@{orte/mca/sstore/sstore.\+h}}
}


Distributed Stable Storage (S\+Store) Interface.  


{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/runtime/orte\+\_\+globals.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/base/base.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+object.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structorte__sstore__base__local__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Local and Global snapshot information structure Primarily used by orte-\/restart as an abstract way to handle metadata. \end{DoxyCompactList}\item 
struct \hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\item 
struct \hyperlink{structorte__sstore__base__component__2__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for S\+S\+T\+O\+R\+E components. \end{DoxyCompactList}\item 
struct \hyperlink{structorte__sstore__base__module__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for S\+S\+T\+O\+R\+E modules. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{sstore_8h_a5a746d129016f7278f9ac8fa5ec93c4f}{\#define \hyperlink{sstore_8h_a5a746d129016f7278f9ac8fa5ec93c4f}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+C\+R\+S\+\_\+\+C\+O\+M\+P}~0}\label{sstore_8h_a5a746d129016f7278f9ac8fa5ec93c4f}

\begin{DoxyCompactList}\small\item\em C\+R\+S Component. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_af3bf6bf7dfec9fbe3e7d43f002c0d804}{\#define \hyperlink{sstore_8h_af3bf6bf7dfec9fbe3e7d43f002c0d804}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+C\+O\+M\+P\+R\+E\+S\+S\+\_\+\+C\+O\+M\+P}~1}\label{sstore_8h_af3bf6bf7dfec9fbe3e7d43f002c0d804}

\begin{DoxyCompactList}\small\item\em Compress Component. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a093aa04ceeeb2ea7206fa18ea8409535}{\#define \hyperlink{sstore_8h_a093aa04ceeeb2ea7206fa18ea8409535}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+C\+O\+M\+P\+R\+E\+S\+S\+\_\+\+P\+O\+S\+T\+F\+I\+X}~2}\label{sstore_8h_a093aa04ceeeb2ea7206fa18ea8409535}

\begin{DoxyCompactList}\small\item\em Compress Component Postfix. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a33ffee304035599d4e4912a6f4a8e6ba}{\#define \hyperlink{sstore_8h_a33ffee304035599d4e4912a6f4a8e6ba}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+P\+I\+D}~3}\label{sstore_8h_a33ffee304035599d4e4912a6f4a8e6ba}

\begin{DoxyCompactList}\small\item\em \hyperlink{structProcess}{Process} P\+I\+D. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_afaf4fba06947935745e48e980532faab}{\#define \hyperlink{sstore_8h_afaf4fba06947935745e48e980532faab}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T}~4}\label{sstore_8h_afaf4fba06947935745e48e980532faab}

\begin{DoxyCompactList}\small\item\em Checkpoint Context \hyperlink{classFile}{File}. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_ab2751b73fbe172d65823b78e69803bb4}{\#define \hyperlink{sstore_8h_ab2751b73fbe172d65823b78e69803bb4}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+M\+K\+D\+I\+R}~5}\label{sstore_8h_ab2751b73fbe172d65823b78e69803bb4}

\begin{DoxyCompactList}\small\item\em Directory to make on restart. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a0a55aad06ee0f497821b08bd093b34ba}{\#define \hyperlink{sstore_8h_a0a55aad06ee0f497821b08bd093b34ba}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+T\+O\+U\+C\+H}~6}\label{sstore_8h_a0a55aad06ee0f497821b08bd093b34ba}

\begin{DoxyCompactList}\small\item\em \hyperlink{classFile}{File} to touch on restart. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a70150b9686d17d15ad0ff9caac7db3b2}{\#define \hyperlink{sstore_8h_a70150b9686d17d15ad0ff9caac7db3b2}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+R\+E\+F}~7}\label{sstore_8h_a70150b9686d17d15ad0ff9caac7db3b2}

\begin{DoxyCompactList}\small\item\em Local snapshot reference (e.\+g., opal\+\_\+snapshot\+\_\+0.\+ckpt) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a92c81ce700002cfbe1c688937d77f8ba}{\#define \hyperlink{sstore_8h_a92c81ce700002cfbe1c688937d77f8ba}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+R\+E\+F\+\_\+\+F\+M\+T}~8}\label{sstore_8h_a92c81ce700002cfbe1c688937d77f8ba}

\begin{DoxyCompactList}\small\item\em Local snapshot reference format string (e.\+g., opal\+\_\+snapshot\+\_\+d.\+ckpt) passed vpid. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_ac6c8d695830b90c827c7d31ca6d80d67}{\#define \hyperlink{sstore_8h_ac6c8d695830b90c827c7d31ca6d80d67}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+L\+O\+C}~9}\label{sstore_8h_ac6c8d695830b90c827c7d31ca6d80d67}

\begin{DoxyCompactList}\small\item\em Local snapshot directory (Full Path excluding reference) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a3262f7fd06436da8034ba4abbba0c327}{\#define \hyperlink{sstore_8h_a3262f7fd06436da8034ba4abbba0c327}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+R\+E\+F\+\_\+\+L\+O\+C\+\_\+\+F\+M\+T}~10}\label{sstore_8h_a3262f7fd06436da8034ba4abbba0c327}

\begin{DoxyCompactList}\small\item\em Local snapshot reference directory (Full Path) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a8c3eec1ff3060d7f34e3fe892d4c54d8}{\#define \hyperlink{sstore_8h_a8c3eec1ff3060d7f34e3fe892d4c54d8}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+M\+E\+T\+A}~11}\label{sstore_8h_a8c3eec1ff3060d7f34e3fe892d4c54d8}

\begin{DoxyCompactList}\small\item\em Local snapshot metadata file (Full Path) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a10044a34c1f00da8fd6c2bdf226ca65b}{\#define \hyperlink{sstore_8h_a10044a34c1f00da8fd6c2bdf226ca65b}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+R\+E\+F}~12}\label{sstore_8h_a10044a34c1f00da8fd6c2bdf226ca65b}

\begin{DoxyCompactList}\small\item\em Global snapshot reference (e.\+g., ompi\+\_\+global\+\_\+snapshot\+\_\+1234.\+ckpt) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a945e867251cc337751243cdf85a8153d}{\#define \hyperlink{sstore_8h_a945e867251cc337751243cdf85a8153d}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+L\+O\+C}~13}\label{sstore_8h_a945e867251cc337751243cdf85a8153d}

\begin{DoxyCompactList}\small\item\em Global snapshot location (Relative Path from base) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_abda2b9020e88affcbc6b9b5f146112a1}{\#define \hyperlink{sstore_8h_abda2b9020e88affcbc6b9b5f146112a1}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+L\+O\+C\+\_\+\+A\+B\+S}~14}\label{sstore_8h_abda2b9020e88affcbc6b9b5f146112a1}

\begin{DoxyCompactList}\small\item\em Global snapshot location (Full path) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a00dd92f8cab7d83e0a5140d6fbdf434c}{\#define \hyperlink{sstore_8h_a00dd92f8cab7d83e0a5140d6fbdf434c}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+M\+E\+T\+A}~15}\label{sstore_8h_a00dd92f8cab7d83e0a5140d6fbdf434c}

\begin{DoxyCompactList}\small\item\em Global snapshot metadata file (Full path) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a6f2048e125c1a13dabda024279014b9a}{\#define \hyperlink{sstore_8h_a6f2048e125c1a13dabda024279014b9a}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+S\+E\+Q}~16}\label{sstore_8h_a6f2048e125c1a13dabda024279014b9a}

\begin{DoxyCompactList}\small\item\em Global snapshot sequence number. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_acee11fff136357b7b6206d482018c037}{\#define \hyperlink{sstore_8h_acee11fff136357b7b6206d482018c037}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+A\+M\+C\+A\+\_\+\+P\+A\+R\+A\+M}~17}\label{sstore_8h_acee11fff136357b7b6206d482018c037}

\begin{DoxyCompactList}\small\item\em A\+M\+C\+A Parameter to be preserved for ompi-\/restart. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a48803898dead87cd6c30852eaaa54785}{\#define \hyperlink{sstore_8h_a48803898dead87cd6c30852eaaa54785}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+N\+U\+M\+\_\+\+S\+E\+Q}~18}\label{sstore_8h_a48803898dead87cd6c30852eaaa54785}

\begin{DoxyCompactList}\small\item\em Total number of sequence numbers for this snapshot. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a576b1c06f385b6fcdf16a894e7e49ce0}{\#define \hyperlink{sstore_8h_a576b1c06f385b6fcdf16a894e7e49ce0}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+S\+N\+A\+P\+\_\+\+A\+L\+L\+\_\+\+S\+E\+Q}~19}\label{sstore_8h_a576b1c06f385b6fcdf16a894e7e49ce0}

\begin{DoxyCompactList}\small\item\em Comma separated list of all sequence numbers for this snapshot. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_ab23a3556e1cc5ed5c8f554c30f2813f5}{\#define \hyperlink{sstore_8h_ab23a3556e1cc5ed5c8f554c30f2813f5}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+B\+A\+S\+E\+\_\+\+L\+O\+C}~20}\label{sstore_8h_ab23a3556e1cc5ed5c8f554c30f2813f5}

\begin{DoxyCompactList}\small\item\em Access the current default base directory (Full Path) \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a2b816a810b2c31a01d8b0fa10b154f80}{\#define \hyperlink{sstore_8h_a2b816a810b2c31a01d8b0fa10b154f80}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+L\+O\+C\+A\+L\+\_\+\+S\+K\+I\+P\+\_\+\+C\+K\+P\+T}~21}\label{sstore_8h_a2b816a810b2c31a01d8b0fa10b154f80}

\begin{DoxyCompactList}\small\item\em The local process is skipping the checkpoint Usually this is because there is a migration, and it is not participating. \end{DoxyCompactList}\item 
\#define \hyperlink{sstore_8h_ad7da1894c238205e80e26f7d00a461bb}{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G}~22
\begin{DoxyCompactList}\small\item\em A Migration checkpoint does not necessarily contain all of the processes in the job, so it is not a checkpoint that can be restarted from normally. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a4e51d8bfa6a1bee95d3ad88cfa49d29f}{\#define {\bfseries S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+M\+A\+X}~23}\label{sstore_8h_a4e51d8bfa6a1bee95d3ad88cfa49d29f}

\item 
\hypertarget{sstore_8h_a085aa0e09a7919fdee2589b605a1dc83}{\#define \hyperlink{sstore_8h_a085aa0e09a7919fdee2589b605a1dc83}{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+H\+A\+N\+D\+L\+E}~\hyperlink{dss__types_8h_a95cff8bed1260b9c4da163f57efaf81c}{O\+P\+A\+L\+\_\+\+U\+I\+N\+T32}}\label{sstore_8h_a085aa0e09a7919fdee2589b605a1dc83}

\begin{DoxyCompactList}\small\item\em Storage handle. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_ab0547714c8569626b911bda42f9eda55}{\#define {\bfseries O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+H\+A\+N\+D\+L\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D}~0}\label{sstore_8h_ab0547714c8569626b911bda42f9eda55}

\item 
\#define \hyperlink{sstore_8h_ad67ea6d19bca69eb7ad8c5ada2787ca3}{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}
\begin{DoxyCompactList}\small\item\em Macro for use in components that are of type S\+S\+T\+O\+R\+E. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{sstore_8h_aacd4611386fc3e26aa50ee2628ae1040}{typedef uint32\+\_\+t {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t}}\label{sstore_8h_aacd4611386fc3e26aa50ee2628ae1040}

\item 
\hypertarget{sstore_8h_adf609870b3d3e78b4e6b760a72e008b2}{typedef struct \\*
\hyperlink{structorte__sstore__base__local__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{sstore_8h_adf609870b3d3e78b4e6b760a72e008b2}

\item 
\hypertarget{sstore_8h_a32998092ab861e9cee1b5409a687a7ea}{typedef struct \\*
\hyperlink{structorte__sstore__base__local__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+t}}\label{sstore_8h_a32998092ab861e9cee1b5409a687a7ea}

\item 
\hypertarget{sstore_8h_a140eff92c3bfeee4770bead6c69f1732}{typedef struct \\*
\hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{sstore_8h_a140eff92c3bfeee4770bead6c69f1732}

\item 
\hypertarget{sstore_8h_ad9afd000ffddd8ae996d7b7aed05588b}{typedef struct \\*
\hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t}}\label{sstore_8h_ad9afd000ffddd8ae996d7b7aed05588b}

\item 
typedef int($\ast$ \hyperlink{sstore_8h_a9c5363f01463a362cc955f41d054f3fd}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module initialization function. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a5f2505ca4b1c0cb3f96b13ba54e82c6c}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module finalization function. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_ab98c8b232a7f9280b1abb02170945885}{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, int seq, \hyperlink{orte_2include_2orte_2types_8h_addefe647f31eee13c7f756f0d959a99b}{orte\+\_\+jobid\+\_\+t} jobid)
\begin{DoxyCompactList}\small\item\em \hyperlink{classRequest}{Request} a checkpoint storage handle from stable storage. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_abbe1806b8beb59b2d76b2cf4e0de4355}{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, char $\ast$basedir, char $\ast$ref, int seq, \hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t} $\ast$snapshot)
\begin{DoxyCompactList}\small\item\em \hyperlink{classRequest}{Request} a restart storage handle from stable storage This function will fail if the key cannot be matched. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a47207f4c9627bf9d66e58cc2c387960c}{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, \hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t} $\ast$snapshot)
\begin{DoxyCompactList}\small\item\em \hyperlink{classRequest}{Request} snapshot info from a given handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_ac9031d5af8227c5530255a3abdd98674}{orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)
\begin{DoxyCompactList}\small\item\em Register access to a handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a0fcbded47c6503a3111bdeb183b66bca}{orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle, \hyperlink{sstore_8h_a6e09554a9cfa5714948df14a1d7b6b3a}{orte\+\_\+sstore\+\_\+base\+\_\+key\+\_\+t} key, char $\ast$$\ast$value)
\begin{DoxyCompactList}\small\item\em Get attribute on the storage handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a514a737d680dad9e11286eaffd2e88a0}{orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle, \hyperlink{sstore_8h_a6e09554a9cfa5714948df14a1d7b6b3a}{orte\+\_\+sstore\+\_\+base\+\_\+key\+\_\+t} key, char $\ast$value)
\begin{DoxyCompactList}\small\item\em Set attribute on the storage handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a929d9e8f92c324733932e99c629226f0}{orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)
\begin{DoxyCompactList}\small\item\em Synchronize the handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_aefb920c6e2ec2ba7512590f19fbae79d}{orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t} )(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)
\begin{DoxyCompactList}\small\item\em Remove data associated with the handle. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a33ba7181c9d01c68afa616c3341cb472}{orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$peer, \hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$buffer, orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)
\begin{DoxyCompactList}\small\item\em Pack a handle into a buffer Only called between the H\+N\+P and O\+R\+T\+E\+D (or Global and Local Snap\+C coordinators) \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a09202f1603b0ac34d097a52181db8536}{orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$peer, \hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$buffer, orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle)
\begin{DoxyCompactList}\small\item\em Unack a handle from a buffer Only called between the H\+N\+P and O\+R\+T\+E\+D (or Global and Local Snap\+C coordinators) \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_a04daa09d242a344f7f9a6f7a163ccfbf}{orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t} )(\hyperlink{structorte__app__context__t}{orte\+\_\+app\+\_\+context\+\_\+t} $\ast$app)
\begin{DoxyCompactList}\small\item\em Fetch application context dependencies before local launch. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{sstore_8h_abc6da6066a333a4509042e97aa1faa90}{orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Wait for all application context dependencies to be fetched. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a35985f52bc612c3c8eb1e04439bcc68e}{typedef struct \\*
\hyperlink{structorte__sstore__base__component__2__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}}\label{sstore_8h_a35985f52bc612c3c8eb1e04439bcc68e}

\item 
\hypertarget{sstore_8h_a4681b3521594f1d6adf6102b5ebb0620}{typedef struct \\*
\hyperlink{structorte__sstore__base__component__2__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+component\+\_\+t}}\label{sstore_8h_a4681b3521594f1d6adf6102b5ebb0620}

\item 
\hypertarget{sstore_8h_a89ae52719f436b17c304f26a519aedd0}{typedef struct \\*
\hyperlink{structorte__sstore__base__module__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{sstore_8h_a89ae52719f436b17c304f26a519aedd0}

\item 
\hypertarget{sstore_8h_a4eb3fe4dcbc5d3a2ecb08392881a4fe4}{typedef struct \\*
\hyperlink{structorte__sstore__base__module__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+t}}\label{sstore_8h_a4eb3fe4dcbc5d3a2ecb08392881a4fe4}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{sstore_8h_ad133ec631a2e4bb077b84fe855e296ed}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__sstore__base__local__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+local\+\_\+snapshot\+\_\+info\+\_\+t})}\label{sstore_8h_ad133ec631a2e4bb077b84fe855e296ed}

\item 
\hypertarget{sstore_8h_acb15b94fe6400d72fe87eb5fc31f617f}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__sstore__base__global__snapshot__info__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t})}\label{sstore_8h_acb15b94fe6400d72fe87eb5fc31f617f}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{sstore_8h_a6e09554a9cfa5714948df14a1d7b6b3a}{B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S typedef uint32\+\_\+t \hyperlink{sstore_8h_a6e09554a9cfa5714948df14a1d7b6b3a}{orte\+\_\+sstore\+\_\+base\+\_\+key\+\_\+t}}\label{sstore_8h_a6e09554a9cfa5714948df14a1d7b6b3a}

\begin{DoxyCompactList}\small\item\em Keys accepted as metadata. \end{DoxyCompactList}\item 
\hypertarget{sstore_8h_a634ac7c45535fe4ce7a83d8f9da15736}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t {\bfseries orte\+\_\+sstore\+\_\+handle\+\_\+current}}\label{sstore_8h_a634ac7c45535fe4ce7a83d8f9da15736}

\item 
\hypertarget{sstore_8h_a4e9da5fb42c0a55199b35b319e07707c}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t {\bfseries orte\+\_\+sstore\+\_\+handle\+\_\+last\+\_\+stable}}\label{sstore_8h_a4e9da5fb42c0a55199b35b319e07707c}

\item 
\hypertarget{sstore_8h_afc705c2b8aeb88557d2b94e5b9c8ff92}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
\hyperlink{structorte__sstore__base__module__1__0__0__t}{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+t} {\bfseries orte\+\_\+sstore}}\label{sstore_8h_afc705c2b8aeb88557d2b94e5b9c8ff92}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Distributed Stable Storage (S\+Store) Interface. 



\subsection{Macro Definition Documentation}
\hypertarget{sstore_8h_ad67ea6d19bca69eb7ad8c5ada2787ca3}{\index{sstore.\+h@{sstore.\+h}!O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}
\index{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}!sstore.\+h@{sstore.\+h}}
\subsubsection[{O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+R\+T\+E\+\_\+\+S\+S\+T\+O\+R\+E\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}\label{sstore_8h_ad67ea6d19bca69eb7ad8c5ada2787ca3}
{\bfseries Value\+:}
\begin{DoxyCode}
MCA\_BASE\_VERSION\_2\_0\_0, \(\backslash\)
    \textcolor{stringliteral}{"sstore"}, 2, 0, 0
\end{DoxyCode}


Macro for use in components that are of type S\+S\+T\+O\+R\+E. 

\hypertarget{sstore_8h_ad7da1894c238205e80e26f7d00a461bb}{\index{sstore.\+h@{sstore.\+h}!S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G@{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G}}
\index{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G@{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G}!sstore.\+h@{sstore.\+h}}
\subsubsection[{S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G}]{\setlength{\rightskip}{0pt plus 5cm}\#define S\+S\+T\+O\+R\+E\+\_\+\+M\+E\+T\+A\+D\+A\+T\+A\+\_\+\+G\+L\+O\+B\+A\+L\+\_\+\+M\+I\+G\+R\+A\+T\+I\+N\+G~22}}\label{sstore_8h_ad7da1894c238205e80e26f7d00a461bb}


A Migration checkpoint does not necessarily contain all of the processes in the job, so it is not a checkpoint that can be restarted from normally. 

Therefore, it needs to be marked specially. 

\subsection{Typedef Documentation}
\hypertarget{sstore_8h_a04daa09d242a344f7f9a6f7a163ccfbf}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+fetch\+\_\+app\+\_\+deps\+\_\+fn\+\_\+t)({\bf orte\+\_\+app\+\_\+context\+\_\+t} $\ast$app)}}\label{sstore_8h_a04daa09d242a344f7f9a6f7a163ccfbf}


Fetch application context dependencies before local launch. 


\begin{DoxyParams}{Parameters}
{\em app} & Application context\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a0fcbded47c6503a3111bdeb183b66bca}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+get\+\_\+attribute\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle, {\bf orte\+\_\+sstore\+\_\+base\+\_\+key\+\_\+t} key, char $\ast$$\ast$value)}}\label{sstore_8h_a0fcbded47c6503a3111bdeb183b66bca}


Get attribute on the storage handle. 


\begin{DoxyParams}{Parameters}
{\em handle} & Storage handle \\
\hline
{\em key} & Key to access \\
\hline
{\em value} & Value of the key. N\+U\+L\+L if not avaialble\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a5f2505ca4b1c0cb3f96b13ba54e82c6c}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t)(void)}}\label{sstore_8h_a5f2505ca4b1c0cb3f96b13ba54e82c6c}


Module finalization function. 

Returns O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S \hypertarget{sstore_8h_a9c5363f01463a362cc955f41d054f3fd}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t)(void)}}\label{sstore_8h_a9c5363f01463a362cc955f41d054f3fd}


Module initialization function. 

Returns O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S \hypertarget{sstore_8h_a33ba7181c9d01c68afa616c3341cb472}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+pack\+\_\+fn\+\_\+t)({\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$peer, {\bf opal\+\_\+buffer\+\_\+t} $\ast$buffer, orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)}}\label{sstore_8h_a33ba7181c9d01c68afa616c3341cb472}


Pack a handle into a buffer Only called between the H\+N\+P and O\+R\+T\+E\+D (or Global and Local Snap\+C coordinators) 


\begin{DoxyParams}{Parameters}
{\em peer} & Peer to which this is being sent (or N\+U\+L\+L if to all peers) \\
\hline
{\em buffer} & Buffer to pack the data into \\
\hline
{\em handle} & Storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_ac9031d5af8227c5530255a3abdd98674}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+register\+\_\+handle\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)}}\label{sstore_8h_ac9031d5af8227c5530255a3abdd98674}


Register access to a handle. 


\begin{DoxyParams}{Parameters}
{\em handle} & Storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_aefb920c6e2ec2ba7512590f19fbae79d}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+remove\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)}}\label{sstore_8h_aefb920c6e2ec2ba7512590f19fbae79d}


Remove data associated with the handle. 


\begin{DoxyParams}{Parameters}
{\em handle} & Storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_ab98c8b232a7f9280b1abb02170945885}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+checkpoint\+\_\+handle\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, int seq, {\bf orte\+\_\+jobid\+\_\+t} jobid)}}\label{sstore_8h_ab98c8b232a7f9280b1abb02170945885}


\hyperlink{classRequest}{Request} a checkpoint storage handle from stable storage. 


\begin{DoxyParams}{Parameters}
{\em handle} & Checkpoint storage handle \\
\hline
{\em key} & Key to use as an identifier \\
\hline
{\em value} & Value of the key specified\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a47207f4c9627bf9d66e58cc2c387960c}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+global\+\_\+snapshot\+\_\+data\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, {\bf orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t} $\ast$snapshot)}}\label{sstore_8h_a47207f4c9627bf9d66e58cc2c387960c}


\hyperlink{classRequest}{Request} snapshot info from a given handle. 

If they key is N\+U\+L\+L, then the latest entry will be used.


\begin{DoxyParams}{Parameters}
{\em handle} & Restart storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_abbe1806b8beb59b2d76b2cf4e0de4355}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+request\+\_\+restart\+\_\+handle\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle, char $\ast$basedir, char $\ast$ref, int seq, {\bf orte\+\_\+sstore\+\_\+base\+\_\+global\+\_\+snapshot\+\_\+info\+\_\+t} $\ast$snapshot)}}\label{sstore_8h_abbe1806b8beb59b2d76b2cf4e0de4355}


\hyperlink{classRequest}{Request} a restart storage handle from stable storage This function will fail if the key cannot be matched. 

If multiple matches exist, it will return the latest one. If they key is N\+U\+L\+L, then the latest entry will be used.


\begin{DoxyParams}{Parameters}
{\em handle} & Restart storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a514a737d680dad9e11286eaffd2e88a0}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+set\+\_\+attribute\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle, {\bf orte\+\_\+sstore\+\_\+base\+\_\+key\+\_\+t} key, char $\ast$value)}}\label{sstore_8h_a514a737d680dad9e11286eaffd2e88a0}


Set attribute on the storage handle. 


\begin{DoxyParams}{Parameters}
{\em handle} & Storage handle \\
\hline
{\em key} & Key to set \\
\hline
{\em value} & Value of the key.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a929d9e8f92c324733932e99c629226f0}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+sync\+\_\+fn\+\_\+t)(orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t handle)}}\label{sstore_8h_a929d9e8f92c324733932e99c629226f0}


Synchronize the handle. 


\begin{DoxyParams}{Parameters}
{\em handle} & Storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_a09202f1603b0ac34d097a52181db8536}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+unpack\+\_\+fn\+\_\+t)({\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$peer, {\bf opal\+\_\+buffer\+\_\+t} $\ast$buffer, orte\+\_\+sstore\+\_\+base\+\_\+handle\+\_\+t $\ast$handle)}}\label{sstore_8h_a09202f1603b0ac34d097a52181db8536}


Unack a handle from a buffer Only called between the H\+N\+P and O\+R\+T\+E\+D (or Global and Local Snap\+C coordinators) 


\begin{DoxyParams}{Parameters}
{\em peer} & Peer from which this was received \\
\hline
{\em buffer} & Buffer to unpack the data \\
\hline
{\em handle} & Storage handle\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
\hypertarget{sstore_8h_abc6da6066a333a4509042e97aa1faa90}{\index{sstore.\+h@{sstore.\+h}!orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t}}
\index{orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t@{orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t}!sstore.\+h@{sstore.\+h}}
\subsubsection[{orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+sstore\+\_\+base\+\_\+wait\+\_\+all\+\_\+deps\+\_\+fn\+\_\+t)(void)}}\label{sstore_8h_abc6da6066a333a4509042e97aa1faa90}


Wait for all application context dependencies to be fetched. 

\begin{DoxyReturn}{Returns}
O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S on success 

O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R on failure 
\end{DoxyReturn}
