\hypertarget{group__drmaa}{\subsection{D\-R\-M\-A\-A interface.} \label{group__drmaa}\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}} } Collaboration diagram for D\-R\-M\-A\-A interface.\-: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=342pt]{group__drmaa} \end{center} \end{figure} \subsubsection*{Modules} \begin{DoxyCompactItemize} \item \hyperlink{group__drmaa__viter}{Vector iteration functions.} \begin{DoxyCompactList}\small\item\em The drmaa\-\_\-get\-\_\-next\-\_\-{\itshape X}() functions S\-H\-A\-L\-L store up to {\itshape value\-\_\-len} bytes of the next attribute name / attribute value / job identifier from the {\itshape values} opaque string vector in the {\itshape value} buffer. \end{DoxyCompactList}\item \hyperlink{group__drmaa__jobt}{Job template operations.} \begin{DoxyCompactList}\small\item\em The function drmaa\-\_\-allocate\-\_\-job\-\_\-template() S\-H\-A\-L\-L allocate a new job template, returned in {\itshape jt}. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsubsection*{Functions} \begin{DoxyCompactItemize} \item int \hyperlink{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{drmaa\-\_\-init} (const char $\ast$contact, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len) \begin{DoxyCompactList}\small\item\em The \hyperlink{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{drmaa\-\_\-init()} function S\-H\-A\-L\-L initialize D\-R\-M\-A\-A library and create a new D\-R\-M\-A\-A session, using the contact parameter, if provided, to determine to which D\-R\-M\-S to connect. \end{DoxyCompactList}\item int \hyperlink{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{drmaa\-\_\-exit} (char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len) \begin{DoxyCompactList}\small\item\em The \hyperlink{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{drmaa\-\_\-exit()} function S\-H\-A\-L\-L disengage from D\-R\-M\-A\-A library and allow the D\-R\-M\-A\-A library to perform any necessary internal cleanup. \end{DoxyCompactList}\item \hypertarget{group__drmaa_ga6b24f87592d4cd4ba31c3ec9d0495ca1}{int \hyperlink{group__drmaa_ga6b24f87592d4cd4ba31c3ec9d0495ca1}{drmaa\-\_\-get\-\_\-attribute} (\hyperlink{structdrmaa__job__template__s}{drmaa\-\_\-job\-\_\-template\-\_\-t} $\ast$jt, const char $\ast$name, char $\ast$value, size\-\_\-t value\-\_\-len, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len)}\label{group__drmaa_ga6b24f87592d4cd4ba31c3ec9d0495ca1} \begin{DoxyCompactList}\small\item\em The function \hyperlink{group__drmaa_ga6b24f87592d4cd4ba31c3ec9d0495ca1}{drmaa\-\_\-get\-\_\-attribute()} S\-H\-A\-L\-L fill the {\itshape value} buffer with up to {\itshape value\-\_\-len} characters of the scalar attribute, {\itshape name's}, value in the given job template. \end{DoxyCompactList}\item int \hyperlink{group__drmaa_ga1743226e9474646ac349f85c3f71dd85}{drmaa\-\_\-set\-\_\-vector\-\_\-attribute} (\hyperlink{structdrmaa__job__template__s}{drmaa\-\_\-job\-\_\-template\-\_\-t} $\ast$jt, const char $\ast$name, const char $\ast$value\mbox{[}$\,$\mbox{]}, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len) \begin{DoxyCompactList}\small\item\em The function \hyperlink{group__drmaa_ga1743226e9474646ac349f85c3f71dd85}{drmaa\-\_\-set\-\_\-vector\-\_\-attribute()} S\-H\-A\-L\-L set the vector attribute, {\itshape name}, in the job template, {\itshape jt}, to the value(s), {\itshape value}. \end{DoxyCompactList}\item \hypertarget{group__drmaa_ga0056db5f93e099845e2474f5a5aad47d}{int \hyperlink{group__drmaa_ga0056db5f93e099845e2474f5a5aad47d}{drmaa\-\_\-get\-\_\-vector\-\_\-attribute} (\hyperlink{structdrmaa__job__template__s}{drmaa\-\_\-job\-\_\-template\-\_\-t} $\ast$jt, const char $\ast$name, \hyperlink{structdrmaa__attr__values__s}{drmaa\-\_\-attr\-\_\-values\-\_\-t} $\ast$$\ast$values, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len)}\label{group__drmaa_ga0056db5f93e099845e2474f5a5aad47d} \begin{DoxyCompactList}\small\item\em The function \hyperlink{group__drmaa_ga0056db5f93e099845e2474f5a5aad47d}{drmaa\-\_\-get\-\_\-vector\-\_\-attribute()} S\-H\-A\-L\-L store in {\itshape values} an opaque values string vector containing the values of the vector attribute, {\itshape name's}, value in the given job template. \end{DoxyCompactList}\item int \hyperlink{group__drmaa_ga71132c3431c0351ca381148c1a4ac415}{drmaa\-\_\-get\-\_\-attribute\-\_\-names} (\hyperlink{structdrmaa__attr__names__s}{drmaa\-\_\-attr\-\_\-names\-\_\-t} $\ast$$\ast$values, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len) \begin{DoxyCompactList}\small\item\em The function \hyperlink{group__drmaa_ga71132c3431c0351ca381148c1a4ac415}{drmaa\-\_\-get\-\_\-attribute\-\_\-names()} S\-H\-A\-L\-L return the set of supported scalar attribute names in an opaque names string vector stored in {\itshape values}. \end{DoxyCompactList}\item int \hyperlink{group__drmaa_ga1bf8dcc85d066261ba036d14dd37d8f2}{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names} (\hyperlink{structdrmaa__attr__names__s}{drmaa\-\_\-attr\-\_\-names\-\_\-t} $\ast$$\ast$values, char $\ast$error\-\_\-diagnosis, size\-\_\-t error\-\_\-diag\-\_\-len) \begin{DoxyCompactList}\small\item\em The function \hyperlink{group__drmaa_ga1bf8dcc85d066261ba036d14dd37d8f2}{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names()} S\-H\-A\-L\-L return the set of supported vector attribute names in an opaque names string vector stored in {\itshape values}. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsubsection{Detailed Description} \subsubsection{Function Documentation} \hypertarget{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}!drmaa\-\_\-init@{drmaa\-\_\-init}} \index{drmaa\-\_\-init@{drmaa\-\_\-init}!DRMAA interface.@{D\-R\-M\-A\-A interface.}} \paragraph[{drmaa\-\_\-init}]{\setlength{\rightskip}{0pt plus 5cm}int drmaa\-\_\-init ( \begin{DoxyParamCaption} \item[{const char $\ast$}]{contact, } \item[{char $\ast$}]{error\-\_\-diagnosis, } \item[{size\-\_\-t}]{error\-\_\-diag\-\_\-len} \end{DoxyParamCaption} )}}\label{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d} The \hyperlink{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{drmaa\-\_\-init()} function S\-H\-A\-L\-L initialize D\-R\-M\-A\-A library and create a new D\-R\-M\-A\-A session, using the contact parameter, if provided, to determine to which D\-R\-M\-S to connect. This function M\-U\-S\-T be called before any other D\-R\-M\-A\-A function, except for \hyperlink{drmaa_8h_a020e878f49a7808540f0adca8adc884f}{drmaa\-\_\-get\-\_\-\-D\-R\-M\-\_\-system()}, \hyperlink{drmaa_8h_a4cc4d601553011d7f7ca3e63111a5641}{drmaa\-\_\-get\-\_\-\-D\-R\-M\-A\-A\-\_\-implementation()}, \hyperlink{drmaa_8h_ad88bd99ee36835cc01dc63f6c6bafbed}{drmaa\-\_\-get\-\_\-contact()}, and \hyperlink{drmaa_8h_a853b5a3e9b93012e6d5e6b934b1b5971}{drmaa\-\_\-strerror()}. If {\itshape contact} is {\ttfamily N\-U\-L\-L}, the default D\-R\-M system S\-H\-A\-L\-L be used, provided there is only one D\-R\-M\-A\-A implementation in the provided binary module. When there is more than one D\-R\-M\-A\-A implementation in the binary module, \hyperlink{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{drmaa\-\_\-init()} S\-H\-A\-L\-L return the D\-R\-M\-A\-A\-\_\-\-E\-R\-R\-N\-O\-\_\-\-N\-O\-\_\-\-D\-E\-F\-A\-U\-L\-T\-\_\-\-C\-O\-N\-T\-A\-C\-T\-\_\-\-S\-T\-R\-I\-N\-G\-\_\-\-S\-E\-L\-E\-C\-T\-E\-D error code. The \hyperlink{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d}{drmaa\-\_\-init()} function S\-H\-O\-U\-L\-D be called by only one of the threads. The main thread is R\-E\-C\-O\-M\-M\-E\-N\-D\-E\-D. A call by another thread S\-H\-A\-L\-L return the D\-R\-M\-A\-A\-\_\-\-E\-R\-R\-N\-O\-\_\-\-A\-L\-R\-E\-A\-D\-Y\-\_\-\-A\-C\-T\-I\-V\-E\-\_\-\-S\-E\-S\-S\-I\-O\-N error code. Here is the call graph for this function\-: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{group__drmaa_gae9ffb85ec39a1fad18d18fc1a269196d_cgraph} \end{center} \end{figure} \hypertarget{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}!drmaa\-\_\-exit@{drmaa\-\_\-exit}} \index{drmaa\-\_\-exit@{drmaa\-\_\-exit}!DRMAA interface.@{D\-R\-M\-A\-A interface.}} \paragraph[{drmaa\-\_\-exit}]{\setlength{\rightskip}{0pt plus 5cm}int drmaa\-\_\-exit ( \begin{DoxyParamCaption} \item[{char $\ast$}]{error\-\_\-diagnosis, } \item[{size\-\_\-t}]{error\-\_\-diag\-\_\-len} \end{DoxyParamCaption} )}}\label{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9} The \hyperlink{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{drmaa\-\_\-exit()} function S\-H\-A\-L\-L disengage from D\-R\-M\-A\-A library and allow the D\-R\-M\-A\-A library to perform any necessary internal cleanup. This routine S\-H\-A\-L\-L end the current D\-R\-M\-A\-A session but S\-H\-A\-L\-L N\-O\-T affect any jobs (e.\-g, queued and running jobs S\-H\-A\-L\-L remain queued and running). \hyperlink{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{drmaa\-\_\-exit()} S\-H\-O\-U\-L\-D be called by only one of the threads. The first call to call \hyperlink{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9}{drmaa\-\_\-exit()} by a thread will operate normally. All other calls from the same and other threads S\-H\-A\-L\-L fail, returning a D\-R\-M\-A\-A\-\_\-\-E\-R\-R\-N\-O\-\_\-\-N\-O\-\_\-\-A\-C\-T\-I\-V\-E\-\_\-\-S\-E\-S\-S\-I\-O\-N error code. Here is the call graph for this function\-: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=264pt]{group__drmaa_gab00cf774d811c2d1b635d9ce61c558d9_cgraph} \end{center} \end{figure} \hypertarget{group__drmaa_ga1743226e9474646ac349f85c3f71dd85}{\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}!drmaa\-\_\-set\-\_\-vector\-\_\-attribute@{drmaa\-\_\-set\-\_\-vector\-\_\-attribute}} \index{drmaa\-\_\-set\-\_\-vector\-\_\-attribute@{drmaa\-\_\-set\-\_\-vector\-\_\-attribute}!DRMAA interface.@{D\-R\-M\-A\-A interface.}} \paragraph[{drmaa\-\_\-set\-\_\-vector\-\_\-attribute}]{\setlength{\rightskip}{0pt plus 5cm}int drmaa\-\_\-set\-\_\-vector\-\_\-attribute ( \begin{DoxyParamCaption} \item[{{\bf drmaa\-\_\-job\-\_\-template\-\_\-t} $\ast$}]{jt, } \item[{const char $\ast$}]{name, } \item[{const char $\ast$}]{value\mbox{[}$\,$\mbox{]}, } \item[{char $\ast$}]{error\-\_\-diagnosis, } \item[{size\-\_\-t}]{error\-\_\-diag\-\_\-len} \end{DoxyParamCaption} )}}\label{group__drmaa_ga1743226e9474646ac349f85c3f71dd85} The function \hyperlink{group__drmaa_ga1743226e9474646ac349f85c3f71dd85}{drmaa\-\_\-set\-\_\-vector\-\_\-attribute()} S\-H\-A\-L\-L set the vector attribute, {\itshape name}, in the job template, {\itshape jt}, to the value(s), {\itshape value}. The D\-R\-M\-A\-A implementation M\-U\-S\-T accept value values that are arrays of one or more strings terminated by a {\ttfamily N\-U\-L\-L} entry. \hypertarget{group__drmaa_ga71132c3431c0351ca381148c1a4ac415}{\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}!drmaa\-\_\-get\-\_\-attribute\-\_\-names@{drmaa\-\_\-get\-\_\-attribute\-\_\-names}} \index{drmaa\-\_\-get\-\_\-attribute\-\_\-names@{drmaa\-\_\-get\-\_\-attribute\-\_\-names}!DRMAA interface.@{D\-R\-M\-A\-A interface.}} \paragraph[{drmaa\-\_\-get\-\_\-attribute\-\_\-names}]{\setlength{\rightskip}{0pt plus 5cm}int drmaa\-\_\-get\-\_\-attribute\-\_\-names ( \begin{DoxyParamCaption} \item[{{\bf drmaa\-\_\-attr\-\_\-names\-\_\-t} $\ast$$\ast$}]{values, } \item[{char $\ast$}]{error\-\_\-diagnosis, } \item[{size\-\_\-t}]{error\-\_\-diag\-\_\-len} \end{DoxyParamCaption} )}}\label{group__drmaa_ga71132c3431c0351ca381148c1a4ac415} The function \hyperlink{group__drmaa_ga71132c3431c0351ca381148c1a4ac415}{drmaa\-\_\-get\-\_\-attribute\-\_\-names()} S\-H\-A\-L\-L return the set of supported scalar attribute names in an opaque names string vector stored in {\itshape values}. This vector S\-H\-A\-L\-L include all required scalar attributes, all supported optional scalar attributes, all D\-R\-M-\/specific scalar attributes, and no unsupported optional attributes. \hypertarget{group__drmaa_ga1bf8dcc85d066261ba036d14dd37d8f2}{\index{D\-R\-M\-A\-A interface.@{D\-R\-M\-A\-A interface.}!drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names@{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names}} \index{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names@{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names}!DRMAA interface.@{D\-R\-M\-A\-A interface.}} \paragraph[{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names}]{\setlength{\rightskip}{0pt plus 5cm}int drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names ( \begin{DoxyParamCaption} \item[{{\bf drmaa\-\_\-attr\-\_\-names\-\_\-t} $\ast$$\ast$}]{values, } \item[{char $\ast$}]{error\-\_\-diagnosis, } \item[{size\-\_\-t}]{error\-\_\-diag\-\_\-len} \end{DoxyParamCaption} )}}\label{group__drmaa_ga1bf8dcc85d066261ba036d14dd37d8f2} The function \hyperlink{group__drmaa_ga1bf8dcc85d066261ba036d14dd37d8f2}{drmaa\-\_\-get\-\_\-vector\-\_\-attribute\-\_\-names()} S\-H\-A\-L\-L return the set of supported vector attribute names in an opaque names string vector stored in {\itshape values}. This vector S\-H\-A\-L\-L include all required vector attributes, all supported optional vector attributes, all D\-R\-M-\/specific vector attributes, and no unsupported optional attributes.