MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / hotpathTxFrame

Method hotpathTxFrame

app/src/DataModel/FrameBuilder.cpp:1853–1889  ·  view source on GitHub ↗

* @brief Publishes a fully constructed DataModel frame to all registered output modules. The * dashboard draws the pooled slot directly; async sinks (gated on the cached m_anyAsyncSink * flag) get one detached copy so a slow-export backlog can never pin the pool. */

Source from the content-addressed store, hash-verified

1851 * flag) get one detached copy so a slow-export backlog can never pin the pool.
1852 */
1853void DataModel::FrameBuilder::hotpathTxFrame(const DataModel::TimestampedFramePtr& frame)
1854{
1855 Q_ASSERT(frame);
1856 Q_ASSERT(!frame->data.groups.empty());
1857 Q_ASSERT(!frame->data.title.isEmpty());
1858
1859 static auto& dashboard = UI::Dashboard::instance();
1860 dashboard.hotpathRxFrame(frame);
1861
1862 if (!m_anyAsyncSink)
1863 return;
1864
1865 static auto& csvExport = CSV::Export::instance();
1866 static auto& mdf4Export = MDF4::Export::instance();
1867 static auto& pluginsServer = API::Server::instance();
1868#ifdef BUILD_COMMERCIAL
1869 static auto& sqliteExport = Sessions::Export::instance();
1870 static auto& mqttPublisher = MQTT::Publisher::instance();
1871#endif
1872#ifdef ENABLE_GRPC
1873 static auto& grpcServer = API::GRPC::GRPCServer::instance();
1874#endif
1875
1876 const auto detached =
1877 std::make_shared<DataModel::TimestampedFrame>(frame->data, frame->timestamp);
1878
1879 csvExport.hotpathTxFrame(detached);
1880 mdf4Export.hotpathTxFrame(detached);
1881 pluginsServer.hotpathTxFrame(detached);
1882#ifdef BUILD_COMMERCIAL
1883 sqliteExport.hotpathTxFrame(detached);
1884 mqttPublisher.hotpathTxFrame(detached);
1885#endif
1886#ifdef ENABLE_GRPC
1887 grpcServer.hotpathTxFrame(detached);
1888#endif
1889}
1890
1891//--------------------------------------------------------------------------------------------------
1892// Per-dataset value transforms

Callers

nothing calls this directly

Calls 3

emptyMethod · 0.80
isEmptyMethod · 0.80
hotpathRxFrameMethod · 0.45

Tested by

no test coverage detected