\hypertarget{a00110}{}\section{Open\+Flipper/\+Base\+Plugin/\+R\+P\+C\+Wrappers.hh File Reference}
\label{a00110}\index{Open\+Flipper/\+Base\+Plugin/\+R\+P\+C\+Wrappers.\+hh@{Open\+Flipper/\+Base\+Plugin/\+R\+P\+C\+Wrappers.\+hh}}
{\ttfamily \#include $<$Qt\+Script$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
{\ttfamily \#include $<$Open\+Flipper/common/\+Types.\+hh$>$}\newline
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{a06174}{R\+PC}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{Indent}\textbf{ Script Engine Controls}\par
{\em Functions to get the scripting engine. Normally you don\textquotesingle{}t need them. And \hyperlink{a06174_a4c32a6894256909edea68b61fa858852}{R\+P\+C\+::set\+Script\+Engine} should never be used! }\begin{DoxyCompactItemize}
\item 
Q\+Script\+Engine $\ast$ \hyperlink{a06174_a2e7f801c03bcd2bd84f41f2e22180554}{R\+P\+C\+::get\+Script\+Engine} ()
\begin{DoxyCompactList}\small\item\em get a pointer to Open\+Flippers core scripting engine \end{DoxyCompactList}\item 
void \hyperlink{a06174_a4c32a6894256909edea68b61fa858852}{R\+P\+C\+::set\+Script\+Engine} (Q\+Script\+Engine $\ast$\+\_\+engine)
\begin{DoxyCompactList}\small\item\em D\+O\+NT U\+S\+E! (Function to set the internal reference to the script Engine) \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Call functions across plugins (simple calls)}\par
{\em These functions can be used to call functions in other plugins. }\begin{DoxyCompactItemize}
\item 
Q\+Script\+Value \hyperlink{a06174_afbba6e32e1c64fa3305d54e4be4626c5}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name)
\begin{DoxyCompactList}\small\item\em call a function provided by a plugin \end{DoxyCompactList}\item 
Q\+Script\+Value \hyperlink{a06174_a738f9f8746ac261ad6f5c656e2790cd0}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, std\+::vector$<$ Q\+Script\+Value $>$ \+\_\+parameters)
\begin{DoxyCompactList}\small\item\em Call a function provided by a plugin getting multiple parameters. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Call functions across plugins}\par
{\em These templates can be used to call functions in other plugins. }\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T0 $>$ }\\void \hyperlink{a06174_a82b16a4bd1d86cdd0ef51d30da8b93c6}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T0 , typename T1 $>$ }\\void \hyperlink{a06174_a4e2b277cf226479d75000a0188e1a8d5}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T0 , typename T1 , typename T2 $>$ }\\void \hyperlink{a06174_a9adf2087495f325aa7167efdea71cfe7}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T0 , typename T1 , typename T2 , typename T3 $>$ }\\void \hyperlink{a06174_ad41301494a5d960a6901cdeda1f7dceb}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T0 , typename T1 , typename T2 , typename T3 , typename T4 $>$ }\\void \hyperlink{a06174_a4195932b3690b5c2633f29454d4c94ee}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3, T4 \+\_\+t4)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 $>$ }\\void \hyperlink{a06174_a20298df6fc8c6e10f8fb31b2860ff0e0}{R\+P\+C\+::call\+Function} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3, T4 \+\_\+t4, T5 \+\_\+t5)
\begin{DoxyCompactList}\small\item\em call a function in another plugin \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Call functions across plugins which return a value}\par
{\em These templates can be used to call functions that return a value. You have to pass the type of return value as the first template parameter. }\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Return\+Value $>$ }\\Return\+Value \hyperlink{a06174_aa259c2dd994e39a983163e93ac441c9f}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 $>$ }\\Return\+Value \hyperlink{a06174_a2f083cde8a1a9472f4f1a57a8bc476dc}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 , typename T1 $>$ }\\Return\+Value \hyperlink{a06174_af829f6bf46c7b0ca5d158bf80d910941}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 , typename T1 , typename T2 $>$ }\\Return\+Value \hyperlink{a06174_a18bcbc5e9ff10db2fa3d9da22060e5c7}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 , typename T1 , typename T2 , typename T3 $>$ }\\Return\+Value \hyperlink{a06174_a56e04a560da630b646db6f67cc33d586}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 $>$ }\\Return\+Value \hyperlink{a06174_a4573fa9d34efeb7764ab4cabfe0eb58d}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3, T4 \+\_\+t4)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Return\+Value , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 $>$ }\\Return\+Value \hyperlink{a06174_a923546aebc495d97fe85ad2408e78d4f}{R\+P\+C\+::call\+Function\+Value} (Q\+String \+\_\+plugin, Q\+String \+\_\+function\+Name, T0 \+\_\+t0, T1 \+\_\+t1, T2 \+\_\+t2, T3 \+\_\+t3, T4 \+\_\+t4, T5 \+\_\+t5)
\begin{DoxyCompactList}\small\item\em call a function in another plugin and get a return parameter \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}


\subsection{Detailed Description}
This file contains functions to call functions and procedures across plugins. The QT Scripting system is used to pass the calls between different plugins.

Usage is described in \hyperlink{RPCInterfacePage}{R\+PC Interface} 