Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
error_category.h File Reference

Decentralized error category system for improved system isolation. More...

#include <functional>
#include <string>
#include <string_view>
Include dependency graph for error_category.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  kcenon::common::error_category
 Abstract base class for error code categories. More...
 
class  kcenon::common::common_error_category
 Error category for common/shared error codes. More...
 
class  kcenon::common::typed_error_code
 A type-safe error code that carries its category. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::common
 Core interfaces.
 

Functions

typed_error_code kcenon::common::make_typed_error_code (common_error_category::codes code) noexcept
 Creates a typed_error_code from common_error_category::codes enum.
 
template<typename Category >
typed_error_code kcenon::common::make_typed_error_code (int code) noexcept
 Creates a typed_error_code from a code value and category.
 
bool kcenon::common::is_success (const typed_error_code &ec) noexcept
 Checks if a typed_error_code represents success (no error).
 
bool kcenon::common::is_error (const typed_error_code &ec) noexcept
 Checks if a typed_error_code represents an error.
 

Detailed Description

Decentralized error category system for improved system isolation.

This file provides the infrastructure for decentralized error handling:

  • error_category: Abstract base class for system-specific error categories
  • common_error_category: Implementation for common/shared error codes
  • typed_error_code: Type-safe error code that carries its category

Design Philosophy: This design follows std::error_category pattern from <system_error> but provides additional features specific to the kcenon ecosystem:

  • Integration with Result<T> pattern
  • Module-based categorization for better debugging
  • Support for detailed error messages

Migration Path:

  • Phase 1 (this file): Infrastructure classes
  • Phase 2: Migrate common errors to common_error_category
  • Phase 3: Create system-specific categories in dependent systems
  • Phase 4: Deprecate centralized error_codes.h

Thread Safety:

  • error_category implementations should be stateless singletons
  • error_code objects are safe for concurrent reads
  • For shared mutable access, users must provide synchronization
See also
https://github.com/kcenon/common_system/issues/300

Definition in file error_category.h.