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

#include <Provider.h>

Collaboration diagram for sc::StatusProvider:
Collaboration graph

Public Member Functions

 StatusProvider (std::initializer_list< StatusCode > statuses)
 

Static Public Member Functions

static void reset ()
 
static StatusCode get ()
 
static bool isOk ()
 
static void set (StatusCode status)
 
template<typename ... Args>
static void set (StatusCode status, Args &&... args)
 

Constructor & Destructor Documentation

◆ StatusProvider()

sc::StatusProvider::StatusProvider ( std::initializer_list< StatusCode statuses)
explicit
13 {
14 // The Release build will eliminate this call, as it's really just a sanity check
15 // to avoid defining duplicate error codes
16 assert(StatusCodeRegistry::insert(statuses));
17 // Avoid warning in Release builds
18 static_cast<void>(statuses);
19}
static bool insert(std::initializer_list< StatusCode > statuses)
Definition: Registry.cpp:32

References sc::StatusCodeRegistry::insert().

Member Function Documentation

◆ get()

StatusCode sc::StatusProvider::get ( )
static
25 {
26 return StatusStorage::get();
27}
static StatusCode get()
Definition: Storage.cpp:47

References sc::StatusStorage::get().

◆ isOk()

bool sc::StatusProvider::isOk ( )
static
29 {
30 return StatusStorage::isOk();
31}
static bool isOk()
Definition: Storage.cpp:51

References sc::StatusStorage::isOk().

◆ reset()

void sc::StatusProvider::reset ( )
static

◆ set() [1/2]

void sc::StatusProvider::set ( StatusCode  status)
static

◆ set() [2/2]

template<typename ... Args>
static void sc::StatusProvider::set ( StatusCode  status,
Args &&...  args 
)
inlinestatic
32 {
33 std::array<char, 512> buffer{};
34 #if !defined(__clang__) && defined(__GNUC__)
35 #pragma GCC diagnostic push
36 #pragma GCC diagnostic ignored "-Wformat-security"
37 #endif
38 // The returned number of bytes to be written does not include the null terminator
39 const auto neededSize = snprintf(nullptr, 0ul, status.message, args ...) + 1;
40 const auto size = std::min(buffer.size(), static_cast<std::size_t>(neededSize));
41 snprintf(buffer.data(), size, status.message, args ...);
42 #if !defined(__clang__) && defined(__GNUC__)
43 #pragma GCC diagnostic pop
44 #endif
45 status.message = buffer.data();
46 set(status);
47 }
static void set(StatusCode status)
Definition: Provider.cpp:33

References sc::StatusCode::message, and set().


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