Permalink
Browse files

Add new I/O free function + OpenSSL references

  • Loading branch information...
Neverlord committed Aug 31, 2017
1 parent a9c82df commit 8b7707c84f3faf9d49603f6859d3afdd47ecb2b4
Showing with 32 additions and 1 deletion.
  1. +5 −1 FAQ.tex
  2. +27 −0 NetworkTransparency.tex
View
@@ -3,6 +3,10 @@ \section{Frequently Asked Questions}
This Section is a compilation of the most common questions via GitHub, chat, and mailing list.
\subsection{Can I Encrypt CAF Communication?}
Yes, by using the OpenSSL module~\see{free-remoting-functions}.
\subsection{Can I Create Messages Dynamically?}
Yes.
@@ -37,4 +41,4 @@ \subsection{What Debugging Tools Exist?}
\lstinline^caf-vec^ is a (highly) experimental tool that annotates CAF logs with vector timestamps. It gives you happens-before
relations and a nice visualization via \href{https://bestchai.bitbucket.io/shiviz/}{ShiViz}. There is an associated
\href{https://github.com/actor-framework/rfcs/blob/master/proposals/0001-minimal-debugging-and-shiviz-support.md}{RFC} for more information on
caf-vec.
caf-vec.
View
@@ -9,10 +9,14 @@ \subsection{Class \texttt{middleman}}
\begin{tabular}{ll}
\textbf{Remoting} & ~ \\
\hline
\lstinline^expected<uint16> open(uint16, const char*, bool)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<uint16> publish(T, uint16, const char*, bool)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<void> unpublish(T x, uint16)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<node_id> connect(std::string host, uint16_t port)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<T> remote_actor<T = actor>(string, uint16)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<T> spawn_broker(F fun, ...)^ & See~\sref{broker}. \\
@@ -76,3 +80,26 @@ \subsection{Publishing and Connecting}
\end{lstlisting}
There is no difference between server and client after the connection phase. Remote actors use the same handle types as local actors and are thus fully transparent.
The function pair \lstinline^open^ and \lstinline^connect^ allows users to connect CAF instances without remote actor setup. The function \lstinline^connect^ returns a \lstinline^node_id^ that can be used for remote spawning (see~\sref{remote-spawn}).
\subsection{Free Functions}
\label{free-remoting-functions}
The following free functions in the namespace \lstinline^caf::io^ avoid calling the middleman directly. This enables users to easily switch between communication backends as long as the interfaces have the same signatures. For example, the (experimental) OpenSSL binding of CAF implements the same functions in the namespace \lstinline^caf::openssl^ to easily switch between encrypted and unencrypted communication.
\begin{center}\small
\begin{tabular}{ll}
\hline
\lstinline^expected<uint16> open(actor_system&, uint16, const char*, bool)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<uint16> publish(T, uint16, const char*, bool)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<void> unpublish(T x, uint16)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<node_id> connect(actor_system&, std::string host, uint16_t port)^ & See~\sref{remoting}. \\
\hline
\lstinline^expected<T> remote_actor<T = actor>(actor_system&, string, uint16)^ & See~\sref{remoting}. \\
\hline
\end{tabular}
\end{center}

0 comments on commit 8b7707c

Please sign in to comment.