blob: 77db7263da0be32efe2a10ad57e39f363a6e917f [file] [log] [blame]
Brianc9f64552014-04-02 19:44:09 -07001#ifndef AOS_COMMON_NETWORK_SEND_SOCKET_H_
2#define AOS_COMMON_NETWORK_SEND_SOCKET_H_
brians343bc112013-02-10 01:53:46 +00003
Brianc9f64552014-04-02 19:44:09 -07004#include "aos/common/network/socket.h"
brians343bc112013-02-10 01:53:46 +00005
Brian Silverman14fd0fb2014-01-14 21:42:01 -08006#include "aos/linux_code/configuration.h"
Brian Silverman66f079a2013-08-26 16:24:30 -07007#include "aos/common/network_port.h"
Brianc1dc7d22014-04-02 12:21:08 -07008#include "aos/common/util/inet_addr.h"
Brian Silverman66f079a2013-08-26 16:24:30 -07009
brians343bc112013-02-10 01:53:46 +000010namespace aos {
Brianc9f64552014-04-02 19:44:09 -070011namespace network {
brians343bc112013-02-10 01:53:46 +000012
13class SendSocket : public Socket {
14 public:
brians343bc112013-02-10 01:53:46 +000015 // Connect must be called before use.
16 SendSocket() {}
17 // Calls Connect automatically.
Brian Silverman66f079a2013-08-26 16:24:30 -070018 SendSocket(NetworkPort port, ::aos::NetworkAddress address) {
19 Connect(port,
20 ::aos::util::MakeIPAddress(::aos::configuration::GetOwnIPAddress(),
21 address));
brians343bc112013-02-10 01:53:46 +000022 }
Brian Silvermana9cbe302013-03-12 18:41:44 -070023 int Connect(NetworkPort port, const char *robot_ip, int type = SOCK_DGRAM);
brians343bc112013-02-10 01:53:46 +000024};
25
Brianc9f64552014-04-02 19:44:09 -070026} // namespace network
27} // namespace aos
brians343bc112013-02-10 01:53:46 +000028
Brianc9f64552014-04-02 19:44:09 -070029#endif // AOS_COMMON_NETWORK_SEND_SOCKET_H_