1 #ifndef FIPA_SERVICES_TRANSPORTS_TRANSPORT_HPP 2 #define FIPA_SERVICES_TRANSPORTS_TRANSPORT_HPP 5 #include <fipa_acl/fipa_acl.h> 6 #include <fipa_services/DistributedServiceDirectory.hpp> 7 #include <fipa_services/ServiceLocator.hpp> 8 #include <boost/asio/ip/tcp.hpp> 9 #include <fipa_services/transports/udt/OutgoingConnection.hpp> 15 namespace transports {
30 static std::map<Type, std::string>
TypeTxt;
34 std::vector<TransportObserver> mObservers;
46 typedef boost::shared_ptr<Transport>
Ptr;
90 void send(
const std::string& receiverName,
const Address& address,
const std::string& data);
102 virtual Address getAddress(
const std::string& interface =
"eth0")
const {
throw std::runtime_error(
"fipa::services::Transport::getAddress not implemented by transport: " +
getName()); }
113 virtual void start() {
throw std::runtime_error(
"fipa::services::Transport::start not implemented by transport: " +
getName()); }
118 virtual void update(
bool readAllMessages =
true) {
throw std::runtime_error(
"fipa::services::transports::Transport::update not implemented by transport: " +
getName()); }
132 void cleanup(
const std::string& receiver);
137 void notify(
const std::string& message);
156 std::map<std::string, OutgoingConnection::Ptr> mOutgoingConnections;
162 #endif // FIPA_SERVICES_TRANSPORTS_TRANSPORT_HPP std::string getName() const
Definition: Transport.hpp:74
Type
Builtin transport types that can be activated.
Definition: Transport.hpp:28
Definition: Transport.hpp:28
virtual ~Transport()
Definition: Transport.hpp:44
Configuration mConfiguration
Definition: Transport.hpp:150
static std::string getLocalIPv4Address(const std::string &interfaceName="eth0")
Definition: Transport.cpp:27
Connection management base class.
Definition: Transport.hpp:24
static std::map< Type, std::string > TypeTxt
Definition: Transport.hpp:30
boost::shared_ptr< OutgoingConnection > Ptr
Definition: OutgoingConnection.hpp:18
virtual void update(bool readAllMessages=true)
Definition: Transport.hpp:118
void registerObserver(TransportObserver observer)
Definition: Transport.cpp:105
void notify(const std::string &message)
Definition: Transport.cpp:110
void setConfiguration(const Configuration &configuration)
Definition: Transport.hpp:142
Communication address specified by IP, port, and protocol.
Definition: Address.hpp:15
virtual void start()
Definition: Transport.hpp:113
virtual OutgoingConnection::Ptr establishOutgoingConnection(const Address &address)
Definition: Transport.hpp:108
void cleanup(const std::string &receiver)
Definition: Transport.cpp:228
std::set< Address > getAddresses() const
Definition: Transport.cpp:188
virtual Address getAddress(const std::string &interface="eth0") const
Definition: Transport.hpp:102
OutgoingConnection::Ptr getCachedOutgoingConnection(const std::string &receiverName, const Address &address)
Definition: Transport.cpp:121
Definition: Configuration.hpp:14
Definition: Transport.hpp:28
Type getType() const
Definition: Transport.hpp:69
boost::function1< void, const std::string & > TransportObserver
Allow to register callbacks with a transport once data arrives.
Definition: Transport.hpp:18
boost::shared_ptr< Transport > Ptr
Definition: Transport.hpp:46
Definition: Transport.hpp:28
static Type getTypeFromTxt(const std::string &typeTxt)
Definition: Transport.cpp:89
const Configuration & getConfiguration() const
Definition: Transport.hpp:147
Definition: DistributedServiceDirectory.cpp:5
static Transport::Ptr create(Type type)
Definition: Transport.cpp:62
void send(const std::string &receiverName, const Address &address, const std::string &data)
Definition: Transport.cpp:144