DNA Calib 1.1
Project brief
Static Public Member Functions | List of all members
sc::StatusCodeRegistry Class Reference

#include <Registry.h>

Collaboration diagram for sc::StatusCodeRegistry:
Collaboration graph

Static Public Member Functions

static bool insert (std::initializer_list< StatusCode > statuses)
 
static bool contains (StatusCode status)
 

Member Function Documentation

◆ contains()

bool sc::StatusCodeRegistry::contains ( StatusCode  status)
static
52 {
53 auto& registry = getRegistry();
54 return (registry.find(status.code) != registry.end());
55}
static std::unordered_set< int > & getRegistry()
Definition: Registry.cpp:20

References sc::StatusCode::code, and sc::getRegistry().

Referenced by sc::StatusStorage::set().

◆ insert()

bool sc::StatusCodeRegistry::insert ( std::initializer_list< StatusCode statuses)
static
32 {
33 auto& registry = getRegistry();
34 #ifdef __clang__
35 #pragma clang diagnostic push
36 #pragma clang diagnostic ignored "-Wexit-time-destructors"
37 #endif
38 static std::mutex mut;
39 #ifdef __clang__
40 #pragma clang diagnostic pop
41 #endif
42 std::lock_guard<std::mutex> lock{mut};
43 // Zero is a reserved code
44 registry.insert(OK.code);
45 bool allUnique = true;
46 for (auto s : statuses) {
47 allUnique = allUnique && registry.insert(s.code).second;
48 }
49 return allUnique;
50}
static const StatusCode OK
Definition: PredefinedCodes.h:9
int code
Definition: StatusCode.h:12

References sc::StatusCode::code, sc::getRegistry(), and sc::OK.

Referenced by sc::StatusProvider::StatusProvider().


The documentation for this class was generated from the following files: