summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/tcp_connection.cc
diff options
context:
space:
mode:
authorMarcus Müller <mmueller@gnuradio.org>2019-08-07 21:45:12 +0200
committerMarcus Müller <marcus@hostalia.de>2019-08-09 23:04:28 +0200
commitf7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch)
treee09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-blocks/lib/tcp_connection.cc
parent78431dc6941e3acc67c858277dfe4a0ed583643c (diff)
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-blocks/lib/tcp_connection.cc')
-rw-r--r--gr-blocks/lib/tcp_connection.cc125
1 files changed, 66 insertions, 59 deletions
diff --git a/gr-blocks/lib/tcp_connection.cc b/gr-blocks/lib/tcp_connection.cc
index 4c0dfc27ac..bef89fb523 100644
--- a/gr-blocks/lib/tcp_connection.cc
+++ b/gr-blocks/lib/tcp_connection.cc
@@ -29,83 +29,90 @@
#include <gnuradio/blocks/pdu.h>
namespace gr {
- namespace blocks {
+namespace blocks {
- tcp_connection::sptr tcp_connection::make(boost::asio::io_service& io_service, int MTU/*= 10000*/, bool no_delay/*=false*/)
- {
- return sptr(new tcp_connection(io_service, MTU, no_delay));
- }
+tcp_connection::sptr tcp_connection::make(boost::asio::io_service& io_service,
+ int MTU /*= 10000*/,
+ bool no_delay /*=false*/)
+{
+ return sptr(new tcp_connection(io_service, MTU, no_delay));
+}
- tcp_connection::tcp_connection(boost::asio::io_service& io_service, int MTU/*= 10000*/, bool no_delay/*=false*/)
- : d_socket(io_service)
- , d_block(NULL)
- , d_no_delay(no_delay)
- {
- d_buf.resize(MTU);
- try {
+tcp_connection::tcp_connection(boost::asio::io_service& io_service,
+ int MTU /*= 10000*/,
+ bool no_delay /*=false*/)
+ : d_socket(io_service), d_block(NULL), d_no_delay(no_delay)
+{
+ d_buf.resize(MTU);
+ try {
d_socket.set_option(boost::asio::ip::tcp::no_delay(no_delay));
- }
- catch (...) {
- // Silently ignore failure (socket might be current in accept stage) and try again in 'start'
- }
+ } catch (...) {
+ // Silently ignore failure (socket might be current in accept stage) and try again
+ // in 'start'
}
+}
- void
- tcp_connection::send(pmt::pmt_t vector)
- {
- size_t len = pmt::blob_length(vector);
+void tcp_connection::send(pmt::pmt_t vector)
+{
+ size_t len = pmt::blob_length(vector);
- // Asio async_write() requires the buffer to remain valid until the handler is called.
- boost::shared_ptr<char[]> txbuf(new char[len]);
+ // Asio async_write() requires the buffer to remain valid until the handler is called.
+ boost::shared_ptr<char[]> txbuf(new char[len]);
- size_t temp = 0;
- memcpy(txbuf.get(), pmt::uniform_vector_elements(vector, temp), len);
+ size_t temp = 0;
+ memcpy(txbuf.get(), pmt::uniform_vector_elements(vector, temp), len);
- size_t offset = 0;
- while (offset < len) {
+ size_t offset = 0;
+ while (offset < len) {
// Limit the size of each write() to the MTU.
- // FIXME: Note that this has the effect of breaking a large PDU into several smaller PDUs, each
- // containing <= MTU bytes. Is this the desired behavior?
+ // FIXME: Note that this has the effect of breaking a large PDU into several
+ // smaller PDUs, each containing <= MTU bytes. Is this the desired behavior?
size_t send_len = std::min((len - offset), d_buf.size());
- boost::asio::async_write(d_socket, boost::asio::buffer(txbuf.get() + offset, send_len),
- boost::bind(&tcp_connection::handle_write, this, txbuf,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred));
+ boost::asio::async_write(
+ d_socket,
+ boost::asio::buffer(txbuf.get() + offset, send_len),
+ boost::bind(&tcp_connection::handle_write,
+ this,
+ txbuf,
+ boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred));
offset += send_len;
- }
}
+}
- void
- tcp_connection::start(gr::basic_block *block)
- {
- d_block = block;
- d_socket.set_option(boost::asio::ip::tcp::no_delay(d_no_delay));
- d_socket.async_read_some(boost::asio::buffer(d_buf),
- boost::bind(&tcp_connection::handle_read, this,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred));
- }
+void tcp_connection::start(gr::basic_block* block)
+{
+ d_block = block;
+ d_socket.set_option(boost::asio::ip::tcp::no_delay(d_no_delay));
+ d_socket.async_read_some(boost::asio::buffer(d_buf),
+ boost::bind(&tcp_connection::handle_read,
+ this,
+ boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred));
+}
- void
- tcp_connection::handle_read(const boost::system::error_code& error, size_t bytes_transferred)
- {
- if (!error) {
+void tcp_connection::handle_read(const boost::system::error_code& error,
+ size_t bytes_transferred)
+{
+ if (!error) {
if (d_block) {
- pmt::pmt_t vector = pmt::init_u8vector(bytes_transferred, (const uint8_t*)&d_buf[0]);
- pmt::pmt_t pdu = pmt::cons(pmt::PMT_NIL, vector);
+ pmt::pmt_t vector =
+ pmt::init_u8vector(bytes_transferred, (const uint8_t*)&d_buf[0]);
+ pmt::pmt_t pdu = pmt::cons(pmt::PMT_NIL, vector);
- d_block->message_port_pub(pdu::pdu_port_id(), pdu);
+ d_block->message_port_pub(pdu::pdu_port_id(), pdu);
}
- d_socket.async_read_some(boost::asio::buffer(d_buf),
- boost::bind(&tcp_connection::handle_read, this,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred));
- }
- else {
+ d_socket.async_read_some(
+ boost::asio::buffer(d_buf),
+ boost::bind(&tcp_connection::handle_read,
+ this,
+ boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred));
+ } else {
d_socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both);
d_socket.close();
- }
}
- } /* namespace blocks */
-}/* namespace gr */
+}
+} /* namespace blocks */
+} /* namespace gr */