OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
ticket_machine/impl.cpp
Go to the documentation of this file.
1// Copyright (c) 2021 MIT Digital Currency Initiative,
2// Federal Reserve Bank of Boston
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#include "impl.hpp"
7
9 impl::impl(std::shared_ptr<logging::log> logger, ticket_number_type range)
10 : m_log(std::move(logger)),
11 m_range(range) {}
12
13 auto
15 -> bool {
16 auto ticket_number = m_next_ticket_number.fetch_add(m_range);
17 result_callback(
18 ticket_number_range_type{ticket_number, ticket_number + m_range});
19 return true;
20 }
21}
impl(std::shared_ptr< logging::log > logger, ticket_number_type range)
Constructor.
auto get_ticket_number(get_ticket_number_callback_type result_callback) -> bool override
Returns a new range of ticket numbers via the provided callback function.
std::function< void(get_ticket_number_return_type)> get_ticket_number_callback_type
Callback function type for asynchronously handling ticket number requests.
std::pair< ticket_number_type, ticket_number_type > ticket_number_range_type
Return value from the ticket machine in the success case.
uint64_t ticket_number_type
Type alias for a ticket number.