diff options
Diffstat (limited to 'host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp')
| -rw-r--r-- | host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp | 26 | 
1 files changed, 17 insertions, 9 deletions
| diff --git a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp index 38acd7a34..7d5613f5d 100644 --- a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp +++ b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp @@ -19,12 +19,13 @@ namespace uhd { namespace rfnoc {  class chdr_ctrl_xport  {  public: -    using io_service   = uhd::transport::io_service; -    using frame_buff   = uhd::transport::frame_buff; -    using send_link_if = uhd::transport::send_link_if; -    using recv_link_if = uhd::transport::recv_link_if; -    using send_io_if   = uhd::transport::send_io_if; -    using recv_io_if   = uhd::transport::recv_io_if; +    using io_service            = uhd::transport::io_service; +    using frame_buff            = uhd::transport::frame_buff; +    using send_link_if          = uhd::transport::send_link_if; +    using recv_link_if          = uhd::transport::recv_link_if; +    using send_io_if            = uhd::transport::send_io_if; +    using recv_io_if            = uhd::transport::recv_io_if; +    using disconnect_callback_t = uhd::transport::disconnect_callback_t;      using sptr = std::shared_ptr<chdr_ctrl_xport>; @@ -37,6 +38,7 @@ public:       * \param my_epid The local EPID for this transport       * \param num_send_frames Number of frames to reserve for TX       * \param num_recv_frames Number of frames to reserve for RX +     * \param disconnect Callback function to disconnect the links       */      static sptr make(io_service::sptr io_srv,          send_link_if::sptr send_link, @@ -44,7 +46,8 @@ public:          const chdr::chdr_packet_factory& pkt_factory,          sep_id_t my_epid,          size_t num_send_frames, -        size_t num_recv_frames) +        size_t num_recv_frames, +        disconnect_callback_t disconnect)      {          return std::make_shared<chdr_ctrl_xport>(io_srv,              send_link, @@ -52,7 +55,8 @@ public:              pkt_factory,              my_epid,              num_send_frames, -            num_recv_frames); +            num_recv_frames, +            disconnect);      }      /*! @@ -64,6 +68,7 @@ public:       * \param my_epid The local EPID for this transport       * \param num_send_frames Number of frames to reserve for TX       * \param num_recv_frames Number of frames to reserve for RX +     * \param disconnect Callback function to disconnect the links       */      chdr_ctrl_xport(io_service::sptr io_srv,          send_link_if::sptr send_link, @@ -71,7 +76,8 @@ public:          const chdr::chdr_packet_factory& pkt_factory,          sep_id_t my_epid,          size_t num_send_frames, -        size_t num_recv_frames); +        size_t num_recv_frames, +        disconnect_callback_t disconnect);      ~chdr_ctrl_xport(); @@ -151,6 +157,8 @@ private:      recv_io_if::sptr _ctrl_recv_if;      recv_io_if::sptr _mgmt_recv_if; +    // Disconnect callback +    disconnect_callback_t _disconnect;      // FIXME: Remove this when have threaded_io_service      std::mutex _mutex; | 
