File: enums.cpp

package info (click to toggle)
broker 1.4.0%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 4,420 kB
  • sloc: cpp: 20,886; python: 1,382; ansic: 1,077; sh: 321; makefile: 103
file content (73 lines) | stat: -rw-r--r-- 2,727 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

#include <utility>

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
#include <pybind11/pybind11.h>
#pragma GCC diagnostic pop

#include "broker/api_flags.hh"
#include "broker/backend.hh"
#include "broker/error.hh"
#include "broker/frontend.hh"
#include "broker/peer_flags.hh"
#include "broker/peer_status.hh"
#include "broker/status.hh"

namespace py = pybind11;

void init_enums(py::module& m) {
  py::enum_<broker::ec>(m, "EC")
    .value("Unspecified", broker::ec::unspecified)
    .value("PeerIncompatible", broker::ec::peer_incompatible)
    .value("PeerInvalid", broker::ec::peer_invalid)
    .value("PeerUnavailable", broker::ec::peer_unavailable)
    .value("PeerTimeout", broker::ec::peer_timeout)
    .value("MasterExists", broker::ec::master_exists)
    .value("NoSuchMaster", broker::ec::no_such_master)
    .value("NoSuchKey", broker::ec::no_such_key)
    .value("RequestTimeOut", broker::ec::request_timeout)
    .value("TypeClash", broker::ec::type_clash)
    .value("InvalidData", broker::ec::invalid_data)
    .value("BackendFailure", broker::ec::backend_failure)
    .value("StaleData", broker::ec::stale_data);

  py::enum_<broker::sc>(m, "SC")
    .value("Unspecified", broker::sc::unspecified)
    .value("PeerAdded", broker::sc::peer_added)
    .value("PeerRemoved", broker::sc::peer_removed)
    .value("PeerLost", broker::sc::peer_lost)
    .value("EndpointDiscovered", broker::sc::endpoint_discovered)
    .value("EndpointUnreachable", broker::sc::endpoint_unreachable);

  py::enum_<broker::peer_status>(m, "PeerStatus")
    .value("Initialized", broker::peer_status::initialized)
    .value("Connecting", broker::peer_status::connecting)
    .value("Connected", broker::peer_status::connected)
    .value("Peered", broker::peer_status::peered)
    .value("Disconnected", broker::peer_status::disconnected)
    .value("Reconnecting", broker::peer_status::reconnecting);

  py::enum_<broker::peer_flags>(m, "PeerFlags")
    .value("Invalid", broker::peer_flags::invalid)
    .value("Local", broker::peer_flags::local)
    .value("Remote", broker::peer_flags::remote)
    .value("Outbound", broker::peer_flags::outbound)
    .value("Inbound", broker::peer_flags::inbound);

  py::enum_<broker::api_flags>(m, "APIFlags")
    .value("Blocking", broker::blocking)
    .value("NonBlocking", broker::nonblocking)
    .export_values();

  py::enum_<broker::frontend>(m, "Frontend")
    .value("Master", broker::master)
    .value("Clone", broker::clone)
    .export_values();

  py::enum_<broker::backend>(m, "Backend")
    .value("Memory", broker::backend::memory)
    .value("SQLite", broker::backend::sqlite)
    .value("RocksDB", broker::backend::rocksdb)
    .export_values();
}