Last change
on this file since 12438 was 12060, checked in by hock@…, 11 years ago |
Reintegrate branch: 20130111-hock-message_classes
improvements:
- new message classes (reboost, zero-copy)
- "fast path" for direct links (skip overlay layer)
- link-properties accessible from the application
- SystemQueue can call boost::bind functions
- protlib compatibility removed (32bit overhead saved in every message)
- addressing2
- AddressDiscovery discoveres only addresses on which we're actually listening
- ariba serialization usage reduced (sill used in OverlayMsg)
- Node::connect, easier and cleaner interface to start-up ariba from the application
- ariba configs via JSON, XML, etc (boost::property_tree)
- keep-alive overhead greatly reduced
- (relayed) overlay links can actually be closed now
- lost messages are detected in most cases
- notification to the application when link is transformed into direct-link
- overlay routing: send message to second best hop if it would be dropped otherwise
- SequenceNumbers (only mechanisms, so for: upward compatibility)
- various small fixes
regressions:
- bluetooth is not yet working again
- bootstrap modules deactivated
- liblog4xx is not working (use cout-logging)
This patch brings great performance and stability improvements at cost of backward compatibility.
Also bluetooth and the bootstrap modules have not been ported to the new interfaces, yet.
|
File size:
1.3 KB
|
Line | |
---|
1 | #ifndef TRANSPORT_PROTOCOL_HPP_
|
---|
2 | #define TRANSPORT_PROTOCOL_HPP_
|
---|
3 |
|
---|
4 | // ariba
|
---|
5 | #include "ariba/utility/addressing2/endpoint_set.hpp"
|
---|
6 | #include "ariba/utility/transport/messages/message.hpp"
|
---|
7 |
|
---|
8 | // ariba interfaces
|
---|
9 | #include "transport_listener.hpp"
|
---|
10 |
|
---|
11 | // namespace ariba::transport
|
---|
12 | namespace ariba {
|
---|
13 | namespace transport {
|
---|
14 |
|
---|
15 | struct system_priority {
|
---|
16 | enum SEND_PRIORITY_INTERNAL {
|
---|
17 | HIGHEST = 0,
|
---|
18 | HIGH = 1,
|
---|
19 | ON_IDLE = 7
|
---|
20 | };
|
---|
21 |
|
---|
22 | static const SEND_PRIORITY_INTERNAL OVERLAY = HIGHEST;
|
---|
23 | };
|
---|
24 |
|
---|
25 |
|
---|
26 |
|
---|
27 | /**
|
---|
28 | * TODO: Doc
|
---|
29 | *
|
---|
30 | * @author Sebastian Mies <mies@tm.uka.de>, Mario Hock
|
---|
31 | */
|
---|
32 | class transport_protocol {
|
---|
33 | public:
|
---|
34 | /// Allow deleting implementing classes by pointer
|
---|
35 | virtual ~transport_protocol() {}
|
---|
36 |
|
---|
37 | virtual void start() = 0;
|
---|
38 | virtual void stop() = 0;
|
---|
39 |
|
---|
40 | /**
|
---|
41 | * @returns whether this connection is assumed to be valid
|
---|
42 | */
|
---|
43 | virtual void send(
|
---|
44 | const addressing2::const_EndpointSetPtr endpoints,
|
---|
45 | reboost::message_t message,
|
---|
46 | uint8_t priority = system_priority::HIGH) = 0;
|
---|
47 |
|
---|
48 | /// @deprecated: Use terminate() from transport_connection instead
|
---|
49 | // virtual void terminate( const address_v* remote ) = 0;
|
---|
50 |
|
---|
51 | virtual void register_listener( transport_listener* listener ) = 0;
|
---|
52 | };
|
---|
53 |
|
---|
54 | }} // namespace ariba::transport
|
---|
55 |
|
---|
56 | #endif /* TRANSPORT_PROTOCOL_HPP_ */
|
---|
Note:
See
TracBrowser
for help on using the repository browser.