MADARA
3.2.3
Main Page
Namespaces
Classes
Files
File List
File Members
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
(
59
const
char
* print_prefix,
60
MessageHeader
* header,
61
const
knowledge::KnowledgeMap
& records);
62
63
protected
:
64
UdpTransport
&
transport_
;
65
66
knowledge::ThreadSafeContext
*
context_
=
nullptr
;
67
68
#ifndef _MADARA_NO_KARL_
69
madara::knowledge::CompiledExpression
on_data_received_
;
71
#endif // _MADARA_NO_KARL_
72
74
madara::utility::ScopedArray<char>
buffer_
;
75
};
76
}
77
}
78
79
#endif // _MADARA_UDP_TRANSPORT_READ_THREAD_H_
madara::transport::UdpTransportReadThread::rebroadcast
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
Definition:
UdpTransportReadThread.cpp:64
BandwidthMonitor.h
madara::transport::UdpTransportReadThread::UdpTransportReadThread
UdpTransportReadThread(UdpTransport &transport)
Definition:
UdpTransportReadThread.cpp:10
UdpTransport.h
ThreadSafeContext.h
madara::knowledge::ThreadSafeContext
This class stores variables and their values for use by any entity needing state information in a thr...
Definition:
ThreadSafeContext.h:75
madara::transport::UdpTransportReadThread::on_data_received_
madara::knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
Definition:
UdpTransportReadThread.h:70
madara::transport::UdpTransportReadThread::context_
knowledge::ThreadSafeContext * context_
Definition:
UdpTransportReadThread.h:66
madara::knowledge::CompiledExpression
Compiled, optimized KaRL logic.
Definition:
CompiledExpression.h:35
madara::transport::UdpTransportReadThread::init
void init(knowledge::KnowledgeBase &knowledge) override
Initializes MADARA context-related items.
Definition:
UdpTransportReadThread.cpp:17
MessageHeader.h
Transport.h
QoSTransportSettings.h
madara::threads::BaseThread
Abstract base class for implementing threads.
Definition:
BaseThread.h:38
madara::knowledge::KnowledgeBase
This class provides a distributed knowledge base to users.
Definition:
KnowledgeBase.h:45
madara::knowledge::KnowledgeMap
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Definition:
KnowledgeRecord.h:1479
ExpressionTree.h
madara::transport::UdpTransportReadThread::transport_
UdpTransport & transport_
Definition:
UdpTransportReadThread.h:64
madara::knowledge
Provides functions and classes for the distributed knowledge base.
Definition:
AggregateFilter.h:32
ScopedArray.h
madara::transport::UdpTransportReadThread::cleanup
void cleanup(void) override
Cleanup function called by thread manager.
Definition:
UdpTransportReadThread.cpp:59
madara::transport::UdpTransportReadThread::buffer_
madara::utility::ScopedArray< char > buffer_
buffer for receiving
Definition:
UdpTransportReadThread.h:74
BaseThread.h
madara
Copyright (c) 2015 Carnegie Mellon University.
Definition:
AggregateFilter.h:30
madara::transport::UdpTransportReadThread::run
void run(void) override
The main loop internals for the read thread.
Definition:
UdpTransportReadThread.cpp:96
madara::transport::MessageHeader
Defines a robust message header which is the default for KaRL messages.
Definition:
MessageHeader.h:57
madara::transport::UdpTransport
UDP-based transport for knowledge.
Definition:
UdpTransport.h:37
madara::utility::ScopedArray< char >
madara::transport::UdpTransportReadThread
Thread for reading knowledge updates through a UDP socket.
Definition:
UdpTransportReadThread.h:29
madara::transport::udp
boost::asio::ip::udp udp
Definition:
BasicASIOTransport.h:23
include
madara
transport
udp
UdpTransportReadThread.h
Generated on Thu Jul 12 2018 17:38:26 for MADARA by
1.8.11