OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
parsec/ticket_machine/interface.hpp
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#ifndef OPENCBDC_TX_SRC_PARSEC_TICKET_MACHINE_INTERFACE_H_
7#define OPENCBDC_TX_SRC_PARSEC_TICKET_MACHINE_INTERFACE_H_
8
9#include <cstdint>
10#include <functional>
11#include <optional>
12#include <variant>
13
16 using ticket_number_type = uint64_t;
17
22 class interface {
23 public:
24 virtual ~interface() = default;
25
26 interface() = default;
27 interface(const interface&) = delete;
28 auto operator=(const interface&) -> interface& = delete;
29 interface(interface&&) = delete;
30 auto operator=(interface&&) -> interface& = delete;
31
33 enum class error_code : uint8_t {
34 };
35
39 = std::pair<ticket_number_type, ticket_number_type>;
43 = std::variant<ticket_number_range_type, error_code>;
47 = std::function<void(get_ticket_number_return_type)>;
48
56 virtual auto
58 -> bool
59 = 0;
60 };
61}
62
63#endif
virtual auto get_ticket_number(get_ticket_number_callback_type result_callback) -> bool=0
Asynchronously returns a new range of ticket numbers.
interface(const interface &)=delete
std::function< void(get_ticket_number_return_type)> get_ticket_number_callback_type
Callback function type for asynchronously handling ticket number requests.
error_code
Error codes returned by the ticket machine.
std::variant< ticket_number_range_type, error_code > get_ticket_number_return_type
Return value from the ticket machine.
std::pair< ticket_number_type, ticket_number_type > ticket_number_range_type
Return value from the ticket machine in the success case.
auto operator=(interface &&) -> interface &=delete
auto operator=(const interface &) -> interface &=delete
uint64_t ticket_number_type
Type alias for a ticket number.