-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCommunication.h
60 lines (47 loc) · 1.06 KB
/
Communication.h
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
55
56
57
58
59
60
#ifndef BaseLib_Policy_Communication_h_IsIncluded
#define BaseLib_Policy_Communication_h_IsIncluded
#include "BaseLib/Export.h"
namespace BaseLib {
namespace Policy {
enum class DLL_STATE CommunicationKind
{
Unicast,
Multicast,
Broadcast
};
class DLL_STATE Communication
{
public:
Communication(CommunicationKind kind, int numToSend = 1)
: kind_(kind)
, numToSend_(numToSend)
{ }
virtual ~Communication()
{ }
const CommunicationKind& Kind() const
{
return kind_;
}
int NumToSend() const
{
return numToSend_;
}
static Communication Unicast(int numSend = 1)
{
return Communication(CommunicationKind::Unicast, numSend);
}
static Communication Multicast(int numSend = 1)
{
return Communication(CommunicationKind::Multicast, numSend);
}
static Communication Broadcast(int numSend = 1)
{
return Communication(CommunicationKind::Broadcast, numSend);
}
private:
CommunicationKind kind_;
int numToSend_;
};
}
}
#endif