24 #ifndef GOBY_MIDDLEWARE_IO_COBS_TCP_CLIENT_H
25 #define GOBY_MIDDLEWARE_IO_COBS_TCP_CLIENT_H
31 #include <boost/asio/read_until.hpp>
32 #include <boost/asio/streambuf.hpp>
33 #include <boost/system/error_code.hpp>
53 class TCPClientConfig;
71 typename Config = goby::middleware::protobuf::TCPClientConfig,
73 bool use_indexed_groups =
false>
76 subscribe_layer, Config, ThreadType, use_indexed_groups>
79 subscribe_layer, Config, ThreadType, use_indexed_groups>;
92 template <
class Thread>
94 std::shared_ptr<const goby::middleware::protobuf::IOData> io_msg);
96 template <
class Thread,
class ThreadBase>
102 void async_write(std::shared_ptr<const goby::middleware::protobuf::IOData> io_msg)
override
108 boost::asio::streambuf buffer_;
Class for grouping publications in the Goby middleware. Analogous to "topics" in ROS,...
Implements Thread for a three layer middleware setup ([ intervehicle [ interprocess [ interthread ] ]...
Represents a thread of execution within the Goby middleware, interleaving periodic events (loop()) wi...
Reads/Writes strings from/to a TCP connection using a Consistent Overhead Byte Stuffing (COBS) binary...
TCPClientThreadCOBS(const goby::middleware::protobuf::TCPClientConfig &config, int index=-1)
Constructs the thread.
friend void cobs_async_write(Thread *this_thread, std::shared_ptr< const goby::middleware::protobuf::IOData > io_msg)
friend void cobs_async_read(Thread *this_thread, std::shared_ptr< ThreadBase > self)
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::goby::acomms::protobuf::DriverConfig, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::goby::acomms::abc::protobuf::Config >, 11, false > config
The global namespace for the Goby project.