xref: /openbmc/telemetry/src/utils/messanger_service.cpp (revision c7935fa17008a5822567c7b702289bb10fe223a3)
1e6d48874SKrzysztof Grobelny #include "messanger_service.hpp"
2e6d48874SKrzysztof Grobelny 
3e6d48874SKrzysztof Grobelny namespace utils
4e6d48874SKrzysztof Grobelny {
5e6d48874SKrzysztof Grobelny 
MessangerService(boost::asio::execution_context & execution_context)6e6d48874SKrzysztof Grobelny MessangerService::MessangerService(
7e6d48874SKrzysztof Grobelny     boost::asio::execution_context& execution_context) :
8e6d48874SKrzysztof Grobelny     boost::asio::execution_context::service(execution_context)
9e6d48874SKrzysztof Grobelny {}
10e6d48874SKrzysztof Grobelny 
create()11e6d48874SKrzysztof Grobelny MessangerService::Context& MessangerService::create()
12e6d48874SKrzysztof Grobelny {
13e6d48874SKrzysztof Grobelny     contexts_.emplace_back(std::make_unique<Context>());
14e6d48874SKrzysztof Grobelny     return *contexts_.back();
15e6d48874SKrzysztof Grobelny }
16e6d48874SKrzysztof Grobelny 
destroy(MessangerService::Context & context)17e6d48874SKrzysztof Grobelny void MessangerService::destroy(MessangerService::Context& context)
18e6d48874SKrzysztof Grobelny {
19*c7935fa1SPatrick Williams     contexts_.erase(std::remove_if(contexts_.begin(), contexts_.end(),
20*c7935fa1SPatrick Williams                                    [&context](const auto& item) {
21*c7935fa1SPatrick Williams         return item.get() == &context;
22*c7935fa1SPatrick Williams     }),
23e6d48874SKrzysztof Grobelny                     contexts_.end());
24e6d48874SKrzysztof Grobelny }
25e6d48874SKrzysztof Grobelny 
26e6d48874SKrzysztof Grobelny boost::asio::execution_context::id MessangerService::id = {};
27e6d48874SKrzysztof Grobelny 
28e6d48874SKrzysztof Grobelny } // namespace utils
29