\hypertarget{pml__base__sendreq_8h}{\section{ompi/mca/pml/base/pml\+\_\+base\+\_\+sendreq.h File Reference}
\label{pml__base__sendreq_8h}\index{ompi/mca/pml/base/pml\+\_\+base\+\_\+sendreq.\+h@{ompi/mca/pml/base/pml\+\_\+base\+\_\+sendreq.\+h}}
}
{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/pml/pml.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/pml/base/pml\+\_\+base\+\_\+request.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/datatype/opal\+\_\+convertor.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/peruse/peruse-\/internal.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structmca__pml__base__send__request__t}{mca\+\_\+pml\+\_\+base\+\_\+send\+\_\+request\+\_\+t}
\begin{DoxyCompactList}\small\item\em Base type for send requests. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{pml__base__sendreq_8h_a2a5d00070b4bc31d40d45c217680f5ec}{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T}(\hyperlink{structrequest}{request},addr,count,datatype,peer,tag,comm,mode,persistent,convertor\+\_\+flags)
\begin{DoxyCompactList}\small\item\em Initialize a send request with call parameters. \end{DoxyCompactList}\item 
\#define \hyperlink{pml__base__sendreq_8h_aa0ff37d20b8fd3accdc7fa07a5dc9988}{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T}(\hyperlink{structrequest}{request})
\begin{DoxyCompactList}\small\item\em Mark the request as started from the P\+M\+L base point of view. \end{DoxyCompactList}\item 
\#define \hyperlink{pml__base__sendreq_8h_a3c0914dce4c9deb186f0497be8cf6911}{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I}(\hyperlink{structrequest}{request})
\begin{DoxyCompactList}\small\item\em Release the ref counts on the communicator and datatype. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__base__sendreq_8h_a9224b8662cf4741b23acae4438ab27ba}{typedef struct \\*
\hyperlink{structmca__pml__base__send__request__t}{mca\+\_\+pml\+\_\+base\+\_\+send\+\_\+request\+\_\+t} {\bfseries mca\+\_\+pml\+\_\+base\+\_\+send\+\_\+request\+\_\+t}}\label{pml__base__sendreq_8h_a9224b8662cf4741b23acae4438ab27ba}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__base__sendreq_8h_a6da7b21ba4181968c852db613795bf83}{O\+M\+P\+I\+\_\+\+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{structmca__pml__base__send__request__t}{mca\+\_\+pml\+\_\+base\+\_\+send\+\_\+request\+\_\+t})}\label{pml__base__sendreq_8h_a6da7b21ba4181968c852db613795bf83}

\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{pml__base__sendreq_8h_a3c0914dce4c9deb186f0497be8cf6911}{\index{pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}!M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I}}
\index{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I}!pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}}
\subsubsection[{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+I\+N\+I(
\begin{DoxyParamCaption}
\item[{}]{{\bf request}}
\end{DoxyParamCaption}
)}}\label{pml__base__sendreq_8h_a3c0914dce4c9deb186f0497be8cf6911}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                                  \hyperlink{request_2request_8h_ade5d7606b0737ca0d02fff7d5c171bb5}{\(\backslash\)}
\hyperlink{request_2request_8h_ade5d7606b0737ca0d02fff7d5c171bb5}{        OMPI\_REQUEST\_FINI}(&(\hyperlink{structrequest}{request})->req\_base.req\_ompi);                 
      \hyperlink{opal__object_8h_abc1e3a4a6f319e31f74659a2f073891a}{\(\backslash\)}
\hyperlink{opal__object_8h_abc1e3a4a6f319e31f74659a2f073891a}{        OBJ\_RELEASE}((\hyperlink{structrequest}{request})->req\_base.req\_comm);                        \(\backslash\)
        if( 0 != (\hyperlink{structrequest}{request})->req\_base.req\_count )                          
      \hyperlink{opal__object_8h_abc1e3a4a6f319e31f74659a2f073891a}{\(\backslash\)}
\hyperlink{opal__object_8h_abc1e3a4a6f319e31f74659a2f073891a}{            OBJ\_RELEASE}((\hyperlink{structrequest}{request})->req\_base.req\_datatype);                \(\backslash\)
        opal\_convertor\_cleanup( &((\hyperlink{structrequest}{request})->req\_base.req\_convertor) );   \(\backslash\)
    \} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}


Release the ref counts on the communicator and datatype. 


\begin{DoxyParams}{Parameters}
{\em request} & (I\+N) The send request. \\
\hline
\end{DoxyParams}
\hypertarget{pml__base__sendreq_8h_a2a5d00070b4bc31d40d45c217680f5ec}{\index{pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}!M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T}}
\index{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T}!pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}}
\subsubsection[{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+I\+T(
\begin{DoxyParamCaption}
\item[{}]{{\bf request}, }
\item[{}]{addr, }
\item[{}]{count, }
\item[{}]{datatype, }
\item[{}]{peer, }
\item[{}]{tag, }
\item[{}]{comm, }
\item[{}]{mode, }
\item[{}]{persistent, }
\item[{}]{convertor\+\_\+flags}
\end{DoxyParamCaption}
)}}\label{pml__base__sendreq_8h_a2a5d00070b4bc31d40d45c217680f5ec}


Initialize a send request with call parameters. 


\begin{DoxyParams}{Parameters}
{\em request} & (I\+N) \hyperlink{structSend}{Send} request \\
\hline
{\em addr} & (I\+N) User buffer \\
\hline
{\em count} & (I\+N) Number of elements of indicated datatype. \\
\hline
{\em datatype} & (I\+N) User defined datatype \\
\hline
{\em peer} & (I\+N) Destination rank \\
\hline
{\em tag} & (I\+N) User defined tag \\
\hline
{\em comm} & (I\+N) Communicator \\
\hline
{\em mode} & (I\+N) \hyperlink{structSend}{Send} mode (S\+T\+A\+N\+D\+A\+R\+D,B\+U\+F\+F\+E\+R\+E\+D,S\+Y\+N\+C\+H\+R\+O\+N\+O\+U\+S,R\+E\+A\+D\+Y) \\
\hline
{\em persistent} & (I\+N) Is request persistent. \\
\hline
{\em convertor\+\_\+flags} & (I\+N) Flags to pass to convertor\\
\hline
\end{DoxyParams}
Perform a any one-\/time initialization. Note that per-\/use initialization is done in the send request start routine. \hypertarget{pml__base__sendreq_8h_aa0ff37d20b8fd3accdc7fa07a5dc9988}{\index{pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}!M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T}}
\index{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T}!pml\+\_\+base\+\_\+sendreq.\+h@{pml\+\_\+base\+\_\+sendreq.\+h}}
\subsubsection[{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+B\+A\+S\+E\+\_\+\+S\+E\+N\+D\+\_\+\+S\+T\+A\+R\+T(
\begin{DoxyParamCaption}
\item[{}]{{\bf request}}
\end{DoxyParamCaption}
)}}\label{pml__base__sendreq_8h_aa0ff37d20b8fd3accdc7fa07a5dc9988}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                      \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_pml\_complete = \textcolor{keyword}{false};                  \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_complete = \textcolor{keyword}{false};             \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_state = OMPI\_REQUEST\_ACTIVE;  \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_status.\_cancelled = 0;        \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_status.MPI\_ERROR = OMPI\_SUCCESS; \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_mpi\_object.comm     = (\hyperlink{structrequest}{request})->req\_comm; \(\backslash\)
        (\hyperlink{structrequest}{request})->req\_ompi.req\_peer = (\hyperlink{structrequest}{request})->req\_peer;   \(\backslash\)
    \} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}


Mark the request as started from the P\+M\+L base point of view. 


\begin{DoxyParams}{Parameters}
{\em request} & (I\+N) The send request. \\
\hline
\end{DoxyParams}


Referenced by mca\+\_\+pml\+\_\+bfo\+\_\+send\+\_\+request\+\_\+restart().

