hmbdc
simplify-high-performance-messaging-programming
hmbdc
tips
Tips.hpp
1
#include "hmbdc/Copyright.hpp"
2
#pragma once
3
4
#include "hmbdc/tips/Node.hpp"
5
#include "hmbdc/tips/Domain.hpp"
6
#include "hmbdc/tips/Messages.hpp"
7
8
namespace
hmbdc
{
namespace
tips {
9
/**
10
* @brief TIPS stands for Type Inferred Pub / Sub
11
* It is a C++ Typed based (vs string topic based) messgage delivery
12
* system covers inter thread, inter process and network communication.
13
*
14
* Most - but not all - Message filterring decision is based
15
* on the compile time (through C++ template) Message type information.
16
*
17
* Runtime message filterring is provided through a special Message
18
* category inTagRange Message - where a message type could be associated
19
* with a runtime decided tag value - this enables the Message type
20
* filterring decision to be made on a runtime configured criteria.
21
* For example, an ImageFrame Message if defnined as inTagRange, it
22
* could be used by both the left camera and the right camera, and this Message
23
* could be filterred by TIPS depending on its origin (left vs right) by associate
24
* different tags to the Message runtime instances
25
*
26
**/
27
28
/* LOGIC (concept) VIEW
29
+--------+
30
|Node |
31
XXXXXXXXXXX | |
32
+--------------------+ XXXXXX XXXXX +--+-----+
33
| Node | Nodes join XX XXXXXX |
34
|an OS thread +---------------------+XX +----+
35
+--------------------+ same domain receive X domain X
36
| (static) | pub / sub X +------+
37
| callback(Msg1) | messges. X X |
38
| ... | pub can happen XXXXX+XX XXXXXXXXXXXXXXXX +---+----+
39
| callback(MsgN) | anywhere through the | XXXXXX |Node |
40
| | domain handle | | |
41
+--------------------+ | +--------+
42
| | +-----+--+
43
| timers callbacks | |Nodes +-+
44
| (dynamic) | |pooled | +-+
45
| | +--------+ | |
46
| | +-----+ |
47
| | +---+
48
+--------------------+
49
50
PHYSICAL (deployment) VIEW
51
+---------------------------+ +---------------------------------------------+
52
| +--------------------+ | | +-------------+ |
53
| | +--------+ | | | |process | +---------------+ |
54
| | |Node | | | | | +----------+ ipc transport | |
55
| | | | | | +---------+ | +-------+-------+ |
56
| | +--------+ | | | | | | | |
57
| | | | | | +---------+ | | |
58
| | | | | | ||Node | | | |
59
| | | | | | || | | +---------------------+ |
60
| | | | | | |---------+ | | +--------+ | |
61
| | | | | | +-------------+ | |Node | | |
62
| | +--------+ | | | | | | | | |
63
| | |Node | +-------+ | | | +--------+ | |
64
| | | | | | | | | | +--------+ | |
65
| | +--------+ | | | | | | |Node | | |
66
| | | | ++--++ | | | | | |
67
| | | | |net | | | +--------+ | |
68
| |process | | +-+--+ | | +--------+ | |
69
| +--------------------+ | | | | |Nodes +-+ | |
70
| | | | | |pooled | +-+ | |
71
| | +----------------------------+ +--------+ | | | |
72
| | | | +-----+ | | |
73
| | | |process +---+ | |
74
| | | +---------------------+ |
75
| host | | host |
76
+---------------------------+ +---------------------------------------------+
77
*/
78
}}
hmbdc
Definition:
Base.hpp:12
Generated by
1.8.14