File: FAQ.rst

package info (click to toggle)
actor-framework 0.17.6-3.2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 9,008 kB
  • sloc: cpp: 77,684; sh: 674; python: 309; makefile: 13
file content (54 lines) | stat: -rw-r--r-- 1,683 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
.. _faq:

Frequently Asked Questions
==========================

This Section is a compilation of the most common questions via GitHub, chat,
and mailing list.

Can I Encrypt CAF Communication?
--------------------------------

Yes, by using the OpenSSL module (see :ref:`free-remoting-functions`).

Can I Create Messages Dynamically?
----------------------------------

Yes.

Usually, messages are created implicitly when sending messages but can also be
created explicitly using ``make_message``. In both cases, types and number of
elements are known at compile time. To allow for fully dynamic message
generation, CAF also offers ``message_builder``:

.. code-block:: C++

   message_builder mb;
   // prefix message with some atom
   mb.append(strings_atom::value);
   // fill message with some strings
   std::vector<std::string> strings{/*...*/};
   for (auto& str : strings)
     mb.append(str);
   // create the message
   message msg = mb.to_message();

What Debugging Tools Exist?
---------------------------

The ``scripts/`` and ``tools/`` directories contain some useful tools to aid in
development and debugging.

``scripts/atom.py`` converts integer atom values back into strings.

``scripts/demystify.py`` replaces cryptic ``typed_mpi<...>``
templates with ``replies_to<...>::with<...>`` and
``atom_constant<...>`` with a human-readable representation of the
actual atom.

``scripts/caf-prof`` is an R script that generates plots from CAF
profiler output.

``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 `ShiViz <https://bestchai.bitbucket.io/shiviz/>`_.