salsa 0.7.1
Loading...
Searching...
No Matches
MessageZyre.cc
1#include "MessageZyre.hh"
2
3namespace Salsa {
4MessageZyre::MessageZyre(zyre_event_t * pEvent) : Message(), mpEvent(pEvent)
5{
10}
12{
16 zyre_event_destroy(&mpEvent);
17}
18
20{
24
25 zyre_event_print(mpEvent);
26}
27
29{
33
34 if (mpEvent) {
35 std::string eventType = zyre_event_type(mpEvent);
36 SPD_TRACE("MessageZyre::nodeEvent() : type [{}]", eventType);
37
38 if (eventType == "ENTER") {
39 return Message::ENTER;
40 }
41 else if (eventType == "EXIT") {
42 return Message::EXIT;
43 }
44 else if (eventType == "EVASIVE") {
45 return Message::EVASIVE;
46 }
47 else if (eventType == "WHISPER") {
48 return Message::WHISPER;
49 }
50 }
51
52 return Message::UNKNOWN;
53}
54
55std::string MessageZyre::uuid() const
56{
60 if (!mpEvent) {
61 return "no_uuid";
62 }
63
64 return zyre_event_peer_uuid(mpEvent);
65}
66
67std::string MessageZyre::name() const
68{
72 if (!mpEvent) {
73 return "no_name";
74 }
75
76 return zyre_event_peer_name(mpEvent);
77}
78
79zyre_event_t * MessageZyre::zyreEvent() const
80{
84 return mpEvent;
85}
86
87std::vector<std::string> & MessageZyre::content()
88{
92
93 mContent.clear();
94 zmsg_t * pMsg = zyre_event_msg(mpEvent);
95 if (pMsg) {
96 char * m_str = zmsg_popstr(pMsg);
97 while (m_str) {
98 mContent.push_back(m_str);
99 free(m_str);
100 m_str = zmsg_popstr(pMsg);
101 }
102 }
103 return mContent;
104}
105
106} // namespace Salsa
MessageZyre(zyre_event_t *pEvent=nullptr)
Definition MessageZyre.cc:4
zyre_event_t * zyreEvent() const
Get zyre event from message.
virtual void print() const
Printing info.
virtual ~MessageZyre()
virtual std::vector< std::string > & content()
Retursn vector of partial messages as strings.
virtual EEventType event() const
Returns node event type.
virtual std::string uuid() const
Returns node uuid.
zyre_event_t * mpEvent
Zyre event.
virtual std::string name() const
Returns node uuid.
std::vector< std::string > mContent
Content.
EEventType
Node event type.
Definition Message.hh:18