2121
2222#if defined(_WIN32) || defined(_WIN64)
2323#include " predef/transport/win32-udp/MulticastTransport.h"
24+ #include " predef/util/NetworkConnect.h"
2425#else
2526#include " predef/transport/linux-udp/MulticastTransport.h"
27+ #include " predef/util/NetworkConnect.h"
2628#endif
2729
2830using namespace ftxui ;
@@ -57,22 +59,23 @@ int main() {
5759 std::lock_guard<std::mutex> lock (g_state.mutex );
5860 g_state.shapes [topic] = msg;
5961 }
60- // Data-Driven Refresh: Trigger UI redraw immediately on data arrival
6162 if (g_state.screen ) {
6263 g_state.screen ->PostEvent (Event::Custom);
6364 }
6465 };
6566
66- group->RegisterHandler <ShapeMsg>(SystemTopic::SquareId, serializer, [&](ShapeMsg m) { shapeHandler (SystemTopic::Square, m); });
67- group->RegisterHandler <ShapeMsg>(SystemTopic::CircleId, serializer, [&](ShapeMsg m) { shapeHandler (SystemTopic::Circle, m); });
68- group->RegisterHandler <ShapeMsg>(SystemTopic::TriangleId, serializer, [&](ShapeMsg m) { shapeHandler (SystemTopic::Triangle, m); });
67+ // Use explicit std::function to match RegisterHandler signature
68+ using HandlerFunc = std::function<void (ShapeMsg)>;
69+ group->RegisterHandler <ShapeMsg>(SystemTopic::SquareId, serializer, HandlerFunc ([&](ShapeMsg m) { shapeHandler (SystemTopic::Square, m); }));
70+ group->RegisterHandler <ShapeMsg>(SystemTopic::CircleId, serializer, HandlerFunc ([&](ShapeMsg m) { shapeHandler (SystemTopic::Circle, m); }));
71+ group->RegisterHandler <ShapeMsg>(SystemTopic::TriangleId, serializer, HandlerFunc ([&](ShapeMsg m) { shapeHandler (SystemTopic::Triangle, m); }));
6972
7073 // 3. Network processing thread
7174 std::atomic<bool > running{true };
7275 std::thread netThread ([&]() {
7376 while (running) {
7477 group->ProcessIncoming ();
75- std::this_thread::sleep_for (std::chrono::milliseconds (5 )); // High-freq check
78+ std::this_thread::sleep_for (std::chrono::milliseconds (5 ));
7679 }
7780 });
7881
@@ -99,7 +102,7 @@ int main() {
99102 canvas (std::move (c)) | flex | border,
100103 hbox ({
101104 filler (),
102- text (" Data-Driven Rendering (Sync with DataBus) | 'q' to quit" ) | dim,
105+ text (" Data-Driven Rendering | 'q' to quit" ) | dim,
103106 filler ()
104107 })
105108 });
@@ -123,6 +126,3 @@ int main() {
123126
124127 return 0 ;
125128}
126-
127-
128-
0 commit comments