\hypertarget{soloader_8h}{\section{Core/\-Utils/\-Legacy/soloader.h File Reference}
\label{soloader_8h}\index{Core/\-Utils/\-Legacy/soloader.\-h@{Core/\-Utils/\-Legacy/soloader.\-h}}
}
{\ttfamily \#include $<$string$>$}\\*
{\ttfamily \#include $<$dlfcn.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/\-Legacy/share.\-h$>$}\\*
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void $\ast$ \hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} void $\ast$ \hyperlink{soloader_8h_ac0b05aa9885f5e59aa2cf2ff035d8c6a}{Get\-Library\-Symbol\-Address} (const std\-::string libname, const std\-::string symbolname, std\-::string \&errormsg)
\item 
void $\ast$ \hyperlink{soloader_8h_a983bb1e16d7f055bf3fdc80c342f363e}{Get\-Library\-Symbol\-Address} (const std\-::string libname, const std\-::string symbolname)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} \hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_ac8f4b57ab77962752eb0e9bae12876d0}{Get\-Library\-Handle} (const std\-::string libname, std\-::string \&errormsg)
\item 
\hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_ad12eab7daccdb763afcb5d71a37b6d48}{Get\-Library\-Handle} (const std\-::string libname)
\item 
\hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_a29c023b0c11a9d224d3a792c4ce74665}{Get\-Library\-Handle} ()
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} void $\ast$ \hyperlink{soloader_8h_ace411d56f706334c12e9e1facbf8c059}{Get\-Handle\-Symbol\-Address} (\hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} handle, const std\-::string symbolname, std\-::string \&errormsg)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} void \hyperlink{soloader_8h_a17886a06d37a5b1407aecd5570612e2e}{Close\-Library} (\hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E})
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} \hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_acd83bf12d91e393faa651e4e53a2ba1a}{find\-Lib} (std\-::string lib, std\-::string \&errormsg)
\item 
\hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_a34308d41251f169ca1fcea623b72a448}{find\-Lib} (std\-::string lib)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} \hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_a5d8a4fa6a731ca80cd4286b5215fb40f}{Find\-Lib\-In\-Path} (const std\-::string \&lib, const std\-::string \&path, std\-::string \&errormsg)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} \hyperlink{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} \hyperlink{soloader_8h_a1dd90c084da7fdc6fd65988320d4ec12}{Find\-Lib\-In\-Path} (const std\-::string \&lib, const std\-::string \&path)
\end{DoxyCompactItemize}


\subsection{Typedef Documentation}
\hypertarget{soloader_8h_a2ca883a9fd4add380145af0b371a9361}{\index{soloader.\-h@{soloader.\-h}!L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E@{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}}
\index{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E@{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}!soloader.h@{soloader.\-h}}
\subsubsection[{L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}typedef void$\ast$ {\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}}}\label{soloader_8h_a2ca883a9fd4add380145af0b371a9361}


\subsection{Function Documentation}
\hypertarget{soloader_8h_a17886a06d37a5b1407aecd5570612e2e}{\index{soloader.\-h@{soloader.\-h}!Close\-Library@{Close\-Library}}
\index{Close\-Library@{Close\-Library}!soloader.h@{soloader.\-h}}
\subsubsection[{Close\-Library}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} void Close\-Library (
\begin{DoxyParamCaption}
\item[{{\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}}]{}
\end{DoxyParamCaption}
)}}\label{soloader_8h_a17886a06d37a5b1407aecd5570612e2e}
\hyperlink{soloader_8h_a17886a06d37a5b1407aecd5570612e2e}{Close\-Library()}

disassociates the given library handle from the calling process. \hypertarget{soloader_8h_acd83bf12d91e393faa651e4e53a2ba1a}{\index{soloader.\-h@{soloader.\-h}!find\-Lib@{find\-Lib}}
\index{find\-Lib@{find\-Lib}!soloader.h@{soloader.\-h}}
\subsubsection[{find\-Lib}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} {\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} find\-Lib (
\begin{DoxyParamCaption}
\item[{std\-::string}]{lib, }
\item[{std\-::string \&}]{errormsg}
\end{DoxyParamCaption}
)}}\label{soloader_8h_acd83bf12d91e393faa651e4e53a2ba1a}
S\-O\-Error() returns the last error generated by one of the above functions. S\-C\-I\-S\-H\-A\-R\-E const char$\ast$ S\-O\-Error(); \hypertarget{soloader_8h_a34308d41251f169ca1fcea623b72a448}{\index{soloader.\-h@{soloader.\-h}!find\-Lib@{find\-Lib}}
\index{find\-Lib@{find\-Lib}!soloader.h@{soloader.\-h}}
\subsubsection[{find\-Lib}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} find\-Lib (
\begin{DoxyParamCaption}
\item[{std\-::string}]{lib}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{soloader_8h_a34308d41251f169ca1fcea623b72a448}
\hypertarget{soloader_8h_a5d8a4fa6a731ca80cd4286b5215fb40f}{\index{soloader.\-h@{soloader.\-h}!Find\-Lib\-In\-Path@{Find\-Lib\-In\-Path}}
\index{Find\-Lib\-In\-Path@{Find\-Lib\-In\-Path}!soloader.h@{soloader.\-h}}
\subsubsection[{Find\-Lib\-In\-Path}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} {\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} Find\-Lib\-In\-Path (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{lib, }
\item[{const std\-::string \&}]{path, }
\item[{std\-::string \&}]{errormsg}
\end{DoxyParamCaption}
)}}\label{soloader_8h_a5d8a4fa6a731ca80cd4286b5215fb40f}
\hypertarget{soloader_8h_a1dd90c084da7fdc6fd65988320d4ec12}{\index{soloader.\-h@{soloader.\-h}!Find\-Lib\-In\-Path@{Find\-Lib\-In\-Path}}
\index{Find\-Lib\-In\-Path@{Find\-Lib\-In\-Path}!soloader.h@{soloader.\-h}}
\subsubsection[{Find\-Lib\-In\-Path}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} {\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} Find\-Lib\-In\-Path (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{lib, }
\item[{const std\-::string \&}]{path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{soloader_8h_a1dd90c084da7fdc6fd65988320d4ec12}
\hypertarget{soloader_8h_ace411d56f706334c12e9e1facbf8c059}{\index{soloader.\-h@{soloader.\-h}!Get\-Handle\-Symbol\-Address@{Get\-Handle\-Symbol\-Address}}
\index{Get\-Handle\-Symbol\-Address@{Get\-Handle\-Symbol\-Address}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Handle\-Symbol\-Address}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} void$\ast$ Get\-Handle\-Symbol\-Address (
\begin{DoxyParamCaption}
\item[{{\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E}}]{handle, }
\item[{const std\-::string}]{symbolname, }
\item[{std\-::string \&}]{errormsg}
\end{DoxyParamCaption}
)}}\label{soloader_8h_ace411d56f706334c12e9e1facbf8c059}
\hyperlink{soloader_8h_ace411d56f706334c12e9e1facbf8c059}{Get\-Handle\-Symbol\-Address()} returns a pointer to the data or function called \char`\"{}symbolname\char`\"{} from within the shared library with handle \char`\"{}handle\char`\"{} \hypertarget{soloader_8h_ac8f4b57ab77962752eb0e9bae12876d0}{\index{soloader.\-h@{soloader.\-h}!Get\-Library\-Handle@{Get\-Library\-Handle}}
\index{Get\-Library\-Handle@{Get\-Library\-Handle}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Library\-Handle}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} {\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} Get\-Library\-Handle (
\begin{DoxyParamCaption}
\item[{const std\-::string}]{libname, }
\item[{std\-::string \&}]{errormsg}
\end{DoxyParamCaption}
)}}\label{soloader_8h_ac8f4b57ab77962752eb0e9bae12876d0}
\hyperlink{soloader_8h_ac8f4b57ab77962752eb0e9bae12876d0}{Get\-Library\-Handle()} opens, and returns the handle to, the library module called \char`\"{}libname\char`\"{} \hypertarget{soloader_8h_ad12eab7daccdb763afcb5d71a37b6d48}{\index{soloader.\-h@{soloader.\-h}!Get\-Library\-Handle@{Get\-Library\-Handle}}
\index{Get\-Library\-Handle@{Get\-Library\-Handle}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Library\-Handle}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} Get\-Library\-Handle (
\begin{DoxyParamCaption}
\item[{const std\-::string}]{libname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{soloader_8h_ad12eab7daccdb763afcb5d71a37b6d48}
\hypertarget{soloader_8h_a29c023b0c11a9d224d3a792c4ce74665}{\index{soloader.\-h@{soloader.\-h}!Get\-Library\-Handle@{Get\-Library\-Handle}}
\index{Get\-Library\-Handle@{Get\-Library\-Handle}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Library\-Handle}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-I\-B\-R\-A\-R\-Y\-\_\-\-H\-A\-N\-D\-L\-E} Get\-Library\-Handle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{soloader_8h_a29c023b0c11a9d224d3a792c4ce74665}
\hypertarget{soloader_8h_ac0b05aa9885f5e59aa2cf2ff035d8c6a}{\index{soloader.\-h@{soloader.\-h}!Get\-Library\-Symbol\-Address@{Get\-Library\-Symbol\-Address}}
\index{Get\-Library\-Symbol\-Address@{Get\-Library\-Symbol\-Address}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Library\-Symbol\-Address}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-C\-I\-S\-H\-A\-R\-E} void$\ast$ Get\-Library\-Symbol\-Address (
\begin{DoxyParamCaption}
\item[{const std\-::string}]{libname, }
\item[{const std\-::string}]{symbolname, }
\item[{std\-::string \&}]{errormsg}
\end{DoxyParamCaption}
)}}\label{soloader_8h_ac0b05aa9885f5e59aa2cf2ff035d8c6a}
\hyperlink{soloader_8h_ac0b05aa9885f5e59aa2cf2ff035d8c6a}{Get\-Library\-Symbol\-Address()} returns a pointer to the data or function called \char`\"{}symbolname\char`\"{} from within the shared library called \char`\"{}libname\char`\"{} \hypertarget{soloader_8h_a983bb1e16d7f055bf3fdc80c342f363e}{\index{soloader.\-h@{soloader.\-h}!Get\-Library\-Symbol\-Address@{Get\-Library\-Symbol\-Address}}
\index{Get\-Library\-Symbol\-Address@{Get\-Library\-Symbol\-Address}!soloader.h@{soloader.\-h}}
\subsubsection[{Get\-Library\-Symbol\-Address}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ Get\-Library\-Symbol\-Address (
\begin{DoxyParamCaption}
\item[{const std\-::string}]{libname, }
\item[{const std\-::string}]{symbolname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{soloader_8h_a983bb1e16d7f055bf3fdc80c342f363e}
