IoUringAssmEngine: Add start/stop() for frame assembly.

With these two functions implemented, this class now actually
assembles frames.
This commit is contained in:
2025-11-05 19:23:30 -04:00
parent 94982d50b9
commit d29ebafea0
2 changed files with 239 additions and 19 deletions
@@ -12,6 +12,7 @@
#include <liburing.h>
#include <boost/asio/io_service.hpp>
#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/posix/stream_descriptor.hpp>
#include <livoxProto1/device.h>
#include "frameAssemblyDesc.h"
@@ -28,7 +29,8 @@ public:
bool setup();
void finalize();
void resetAndAssembleFrame();
void resetAndAssembleFrame(
std::function<void(void*)> onCqeReady);
void stop();
// Telemetry helpers
@@ -48,13 +50,19 @@ private:
// Eventfd for CQE notifications (used with boost's unified loop)
int eventfdFd;
std::unique_ptr<boost::asio::posix::stream_descriptor> eventfdDesc;
uint64_t eventfd_value; // Buffer for async_read_some
// Point cloud data socket descriptor
std::shared_ptr<boost::asio::posix::stream_descriptor> pcloudDataFdDesc;
// Stall detection timer
boost::asio::deadline_timer stallTimer;
// Callback for CQE notifications (called with user_data from each CQE)
std::function<void(void*)> onCqeReadyCallback;
void cancelIncompleteAndFillDummies();
void onEventfdRead(
const boost::system::error_code& error, std::size_t bytes_transferred);
};
} // namespace stim_buff