OGLplus  (0.59.0) a C++ wrapper for rendering APIs

eagine/message_bus/005_broadcast_blob.cpp

Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt

#include <eagine/main.hpp>
#include <chrono>
#include <thread>
namespace eagine {
auto main(main_ctx& ctx) -> int {
msgbus::router_address address{ctx};
msgbus::connection_setup conn_setup(ctx);
msgbus::endpoint bus{EAGINE_ID(Temporary), ctx};
conn_setup.setup_connectors(bus, address);
if(ctx.args().none()) {
file_contents data(ctx.exe_path());
bus.broadcast_blob(
EAGINE_MSG_ID(Example, Content), data, std::chrono::minutes(5));
} else {
for(auto& arg : ctx.args()) {
if(file_contents data{arg}) {
bus.broadcast_blob(
EAGINE_MSG_ID(Example, Content),
data,
std::chrono::minutes(5));
}
}
}
timeout done{std::chrono::seconds{30}};
while(!done) {
if(bus.update()) {
done.reset();
} else {
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
}
bus.finish();
return 0;
}
} // namespace eagine
#define EAGINE_ID(NAME)
Macro for constructing instances of eagine::identifier.
Definition: identifier.hpp:353
Common code is placed in this namespace.
Definition: eagine.hpp:21
#define EAGINE_MSG_ID(API, NAME)
Macro for instantiating objects of static_message_id.
Definition: message_id.hpp:148
basic_address< false > address
Type alias for non-const memory address values.
Definition: address.hpp:203

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).