MADARA
3.4.1
UdpTransportReadThread.h
Go to the documentation of this file.
1
#ifndef _MADARA_UDP_TRANSPORT_READ_THREAD_H_
2
#define _MADARA_UDP_TRANSPORT_READ_THREAD_H_
3
4
#include <string>
5
6
#include "
madara/utility/ScopedArray.h
"
7
#include "
madara/knowledge/ThreadSafeContext.h
"
8
#include "
madara/transport/BandwidthMonitor.h
"
9
#include "
madara/transport/QoSTransportSettings.h
"
10
#include "
madara/expression/ExpressionTree.h
"
11
#include "
madara/transport/Transport.h
"
12
#include "
madara/transport/MessageHeader.h
"
13
#include "
madara/transport/udp/UdpTransport.h
"
14
#include "
madara/threads/BaseThread.h
"
15
#include "madara/Boost.h"
16
17
namespace
madara
18
{
19
namespace
transport
20
{
21
namespace
asio = boost::asio;
22
namespace
ip = boost::asio::ip;
23
using
udp
=
boost::asio::ip::udp
;
24
29
class
UdpTransportReadThread
:
public
threads::BaseThread
30
{
31
public
:
32
UdpTransportReadThread
(
UdpTransport
& transport);
33
38
void
init
(
knowledge::KnowledgeBase
&
knowledge
)
override
;
39
43
void
cleanup
(
void
)
override
;
44
48
void
run
(
void
)
override
;
49
58
void
rebroadcast
(
const
char
* print_prefix,
MessageHeader
* header,
59
const
knowledge::KnowledgeMap
& records);
60
61
protected
:
62
UdpTransport
&
transport_
;
63
64
knowledge::ThreadSafeContext
*
context_
=
nullptr
;
65
66
#ifndef _MADARA_NO_KARL_
68
madara::knowledge::CompiledExpression
on_data_received_
;
69
#endif
// _MADARA_NO_KARL_
70
72
madara::utility::ScopedArray<char>
buffer_
;
73
75
knowledge::containers::Integer
received_packets_
;
76
78
knowledge::containers::Integer
failed_receives_
;
79
81
knowledge::containers::Integer
received_data_
;
82
84
knowledge::containers::Integer
received_data_max_
;
85
87
knowledge::containers::Integer
received_data_min_
;
88
};
89
}
90
}
91
92
#endif
// _MADARA_UDP_TRANSPORT_READ_THREAD_H_
BandwidthMonitor.h
BaseThread.h
ExpressionTree.h
MessageHeader.h
QoSTransportSettings.h
ScopedArray.h
ThreadSafeContext.h
Transport.h
UdpTransport.h
madara::knowledge::CompiledExpression
Compiled, optimized KaRL logic.
Definition:
CompiledExpression.h:37
madara::knowledge::KnowledgeBase
This class provides a distributed knowledge base to users.
Definition:
KnowledgeBase.h:45
madara::knowledge::ThreadSafeContext
This class stores variables and their values for use by any entity needing state information in a thr...
Definition:
ThreadSafeContext.h:76
madara::knowledge::containers::Integer
This class stores an integer within a variable context.
Definition:
Integer.h:32
madara::threads::BaseThread
Abstract base class for implementing threads.
Definition:
BaseThread.h:39
madara::transport::MessageHeader
Defines a robust message header which is the default for KaRL messages.
Definition:
MessageHeader.h:57
madara::transport::UdpTransportReadThread
Thread for reading knowledge updates through a UDP socket.
Definition:
UdpTransportReadThread.h:30
madara::transport::UdpTransportReadThread::received_data_
knowledge::containers::Integer received_data_
received data
Definition:
UdpTransportReadThread.h:81
madara::transport::UdpTransportReadThread::received_packets_
knowledge::containers::Integer received_packets_
received packets
Definition:
UdpTransportReadThread.h:75
madara::transport::UdpTransportReadThread::cleanup
void cleanup(void) override
Cleanup function called by thread manager.
Definition:
UdpTransportReadThread.cpp:72
madara::transport::UdpTransportReadThread::on_data_received_
madara::knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
Definition:
UdpTransportReadThread.h:68
madara::transport::UdpTransportReadThread::buffer_
madara::utility::ScopedArray< char > buffer_
buffer for receiving
Definition:
UdpTransportReadThread.h:72
madara::transport::UdpTransportReadThread::UdpTransportReadThread
UdpTransportReadThread(UdpTransport &transport)
Definition:
UdpTransportReadThread.cpp:12
madara::transport::UdpTransportReadThread::received_data_max_
knowledge::containers::Integer received_data_max_
max data received
Definition:
UdpTransportReadThread.h:84
madara::transport::UdpTransportReadThread::received_data_min_
knowledge::containers::Integer received_data_min_
min data received
Definition:
UdpTransportReadThread.h:87
madara::transport::UdpTransportReadThread::init
void init(knowledge::KnowledgeBase &knowledge) override
Initializes MADARA context-related items.
Definition:
UdpTransportReadThread.cpp:17
madara::transport::UdpTransportReadThread::run
void run(void) override
The main loop internals for the read thread.
Definition:
UdpTransportReadThread.cpp:127
madara::transport::UdpTransportReadThread::failed_receives_
knowledge::containers::Integer failed_receives_
bad receives
Definition:
UdpTransportReadThread.h:78
madara::transport::UdpTransportReadThread::context_
knowledge::ThreadSafeContext * context_
Definition:
UdpTransportReadThread.h:64
madara::transport::UdpTransportReadThread::rebroadcast
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
Definition:
UdpTransportReadThread.cpp:74
madara::transport::UdpTransportReadThread::transport_
UdpTransport & transport_
Definition:
UdpTransportReadThread.h:62
madara::transport::UdpTransport
UDP-based transport for knowledge.
Definition:
UdpTransport.h:39
madara::utility::ScopedArray< char >
madara::knowledge
Provides functions and classes for the distributed knowledge base.
Definition:
AggregateFilter.h:33
madara::knowledge::KnowledgeMap
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Definition:
KnowledgeRecord.h:1818
madara::transport::udp
boost::asio::ip::udp udp
Definition:
BasicASIOTransport.h:23
madara
Copyright(c) 2020 Galois.
Definition:
AggregateFilter.h:31
include
madara
transport
udp
UdpTransportReadThread.h
Generated on Sat Jan 20 2024 00:40:27 for MADARA by
1.9.1