source: source/ariba/utility/transport/interfaces/transport_listener.hpp

Last change on this file 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: 898 bytes
Line 
1// transport_listener.hpp, created on 01.07.2009 by Sebastian Mies
2
3#ifndef TRANSPORT_LISTENER_HPP
4#define TRANSPORT_LISTENER_HPP
5
6// ariba
7#include "ariba/utility/transport/messages/buffers.hpp"
8
9// ariba interfaces
10#include "transport_connection.hpp"
11
12// namespace ariba::transport
13namespace ariba {
14namespace transport {
15
16/**
17 * TODO: Doc
18 *
19 * @author Sebastian Mies <mies@tm.uka.de>
20 */
21class transport_listener {
22public:
23 /// Allow deleting implementing classes by pointer
24 virtual ~transport_listener() {}
25
26 /// called when a message is received
27 virtual void receive_message(
28 transport_connection::sptr connection,
29 reboost::shared_buffer_t msg
30 ) = 0;
31
32 /// called when a connection is terminated (e.g. TCP close)
33 virtual void connection_terminated(transport_connection::sptr connection) = 0;
34};
35
36}} // namespace ariba::transport
37
38
39#endif /* TRANSPORT_LISTENER_HPP */
Note: See TracBrowser for help on using the repository browser.