RTC Toolkit  0.1.0-alpha
mudpiProcessingError.hpp
Go to the documentation of this file.
1 
8 #ifndef RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSORERROR_HPP_
9 #define RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSORERROR_HPP_
10 
11 
12 #include <system_error>
13 
14 namespace rtctk::telRepub {
15 
21 {
25  TopicIdOutOfRange = 1,
26 
30  FrameIdOutOfRange,
31 
35  JumpedSamples,
36 
40  MissingFrame,
41 
46 };
47 
48 
54 class MudpiProcessorErrorCategory : public std::error_category {
58  const char* name() const noexcept override {
59  return "MudpiProcessingError";
60  }
61 
65  std::string message(int ev) const noexcept override {
66  switch (static_cast<MudpiProcessingError>(ev)) {
67  case MudpiProcessingError::TopicIdOutOfRange:
68  return "TopicId out of range";
69  case MudpiProcessingError::FrameIdOutOfRange:
70  return "FrameId out of range";
71  case MudpiProcessingError::JumpedSamples:
72  return "Missing (jamped) sample";
73  case MudpiProcessingError::MissingFrame:
74  return "Missing (skipped) frame in a sample";
76  return "Topic too long";
77  default:
78  return "unknown";
79  }
80  }
81 
82  virtual bool equivalent(const std::error_code& code,
83  int condition) const noexcept override {
84  return false;
85  }
86 };
87 
93 inline const std::error_category& GetMudpiProcessorErrorCategory() {
94  static const MudpiProcessorErrorCategory inst{};
95  return inst;
96 }
97 
103 inline std::error_code make_error_code(MudpiProcessingError e) { // NOLINT
104  return {static_cast<int>(e), GetMudpiProcessorErrorCategory()};
105 }
106 
107 } // closing namespace rtctk::telRepub
108 
109 namespace std {
110 template <>
111 struct is_error_code_enum<rtctk::telRepub::MudpiProcessingError> : true_type {};
112 } // namespace std
113 
114 
115 
116 #endif //RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSORERROR_HPP_
117 
118 
119 
rtctk::telRepub
Definition: ddsPub.cpp:12
rtctk::telRepub::MudpiProcessorErrorCategory
Definition: mudpiProcessingError.hpp:54
rtctk::telRepub::GetMudpiProcessorErrorCategory
const std::error_category & GetMudpiProcessorErrorCategory()
Definition: mudpiProcessingError.hpp:93
rtctk::telRepub::MudpiProcessingError
MudpiProcessingError
Definition: mudpiProcessingError.hpp:21
rtctk::telRepub::MudpiProcessingError::TopicIdOutOfRange
@ TopicIdOutOfRange
rtctk::telRepub::make_error_code
std::error_code make_error_code(MudpiProcessingError e)
Definition: mudpiProcessingError.hpp:103
std
Definition: mudpiProcessingError.hpp:109
rtctk
Definition: exampleBusinessLogic.cpp:12