Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::concepts Namespace Reference

C++20 concepts for compile-time type validation. More...

Concepts

concept  Invocable
 A callable type that can be invoked with given arguments.
 
concept  VoidCallable
 A callable type that returns void when invoked.
 
concept  ReturnsResult
 A callable type that returns a value convertible to the specified type.
 
concept  NoexceptCallable
 A callable type that is marked noexcept.
 
concept  Predicate
 A callable type that returns a boolean value.
 
concept  UnaryFunction
 A callable type that takes a single argument.
 
concept  BinaryFunction
 A callable type that takes two arguments.
 
concept  JobLike
 A type that satisfies the Job interface requirements.
 
concept  ExecutorLike
 A type that satisfies the Executor interface requirements.
 
concept  TaskFactory
 A callable that creates a job or task.
 
concept  AsyncCallable
 A callable suitable for async execution returning a future.
 
concept  DelayedCallable
 A callable suitable for delayed execution.
 
concept  Container
 A type that satisfies basic container requirements.
 
concept  SequenceContainer
 A container that provides sequential access and modification.
 
concept  AssociativeContainer
 A container that provides key-based access.
 
concept  MappingContainer
 A container that maps keys to values.
 
concept  ResizableContainer
 A container that can be resized.
 
concept  ClearableContainer
 A container that can be cleared.
 
concept  InsertableContainer
 A container that supports insert operations.
 
concept  ErasableContainer
 A container that supports erase operations.
 
concept  RandomAccessContainer
 A container that supports random access via operator[].
 
concept  BoundedContainer
 A container with fixed maximum capacity.
 
concept  ThreadSafeContainer
 A container designed for thread-safe access.
 
concept  PoolableContainer
 A container that supports object pooling operations.
 
concept  CircularBuffer
 A container that operates as a circular buffer.
 
concept  Resultable
 A type that can contain either a value or an error.
 
concept  Unwrappable
 A type that supports value extraction (unwrapping).
 
concept  Mappable
 A type that supports monadic map operations.
 
concept  Chainable
 A type that supports monadic chaining (flatMap/and_then).
 
concept  MonadicResult
 A complete Result-like type with all monadic operations.
 
concept  OptionalLike
 A type that represents an optional value (present or absent).
 
concept  ErrorInfo
 A type that contains error information.
 
concept  ValueOrError
 A type that holds either a value or error information.
 
concept  EventType
 A type that can be used as an event in the event bus.
 
concept  EventHandler
 A callable that can handle events of a specific type.
 
concept  EventFilter
 A callable that filters events based on criteria.
 
concept  TimestampedEvent
 An event type that includes a timestamp.
 
concept  NamedEvent
 An event type that includes a module or source name.
 
concept  ErrorEvent
 An event type representing an error.
 
concept  MetricEvent
 An event type representing a metric measurement.
 
concept  ModuleLifecycleEvent
 An event type representing module lifecycle changes.
 
concept  FullErrorEvent
 A complete error event with module, message, code, and timestamp.
 
concept  FullMetricEvent
 A complete metric event with timestamp.
 
concept  EventBusLike
 A type that satisfies the event bus interface requirements.
 
concept  LogLevelEnumLike
 A type that represents log levels.
 
concept  BasicLogger
 A type that provides basic logging functionality.
 
concept  LevelAwareLogger
 A type that supports log level filtering.
 
concept  FlushableLogger
 A type that supports flushing buffered log messages.
 
concept  StructuredLogger
 A type that supports structured log entries.
 
concept  LoggerLike
 A complete logger type satisfying ILogger interface requirements.
 
concept  LoggerProviderLike
 A type that can provide logger instances.
 
concept  LoggerRegistryLike
 A type that manages named logger instances.
 
concept  CounterMetric
 A type that supports counter metric operations.
 
concept  GaugeMetric
 A type that supports gauge metric operations.
 
concept  HistogramMetric
 A type that supports histogram metric operations.
 
concept  TimingMetric
 A type that supports timing metric operations.
 
concept  MetricCollectorLike
 A complete metric collector type satisfying IMetricCollector interface.
 
concept  NamedImplementation
 A type that provides implementation name for debugging.
 
concept  MetricCollectorProviderLike
 A type that can provide metric collector instances.
 
concept  ServiceInterface
 A type that can be used as a service interface.
 
concept  ServiceImplementation
 A type that implements a service interface.
 
concept  ServiceFactory
 A callable that creates service instances.
 
concept  SimpleServiceFactory
 A callable that creates service instances without container access.
 
concept  ServiceContainerLike
 A type that satisfies service container interface requirements.
 
concept  ServiceScopeLike
 A type that represents a service scope.
 
concept  InjectableService
 A service that can be automatically injected.
 
concept  SharedService
 A type that can be shared via shared_ptr.
 
concept  ConfigSection
 A serializable configuration section type.
 
concept  Validatable
 A type that can validate its own state.
 
concept  ServiceWithDependencies
 A service that declares its dependencies.
 
concept  InitializableService
 A service that requires explicit initialization.
 
concept  DisposableService
 A service that requires explicit cleanup.
 
concept  ModuleRegistrar
 A class-based module registrar for ecosystem DI integration.
 
concept  HttpSender
 A type that can send HTTP requests.
 
concept  HttpAvailabilityChecker
 A type that can check HTTP client availability.
 
concept  HttpClientLike
 A complete HTTP client type satisfying IHttpClient interface.
 
concept  HttpClientProviderLike
 A type that can provide HTTP client instances.
 
concept  UdpConnectable
 A type that supports UDP connection operations.
 
concept  UdpSender
 A type that can send UDP datagrams.
 
concept  UdpConnectionStatus
 A type that can report UDP connection status.
 
concept  UdpClientLike
 A complete UDP client type satisfying IUdpClient interface.
 
concept  UdpClientProviderLike
 A type that can provide UDP client instances.
 
concept  TransportClient
 A type that represents any transport client (HTTP or UDP).
 
concept  Sendable
 A type that can send data.
 
concept  Receivable
 A type that can receive data.
 

Detailed Description

C++20 concepts for compile-time type validation.

This namespace contains all concept definitions used throughout the common_system library. Concepts provide:

  • Compile-time type checking with clear error messages
  • Self-documenting interface requirements
  • Simplified template constraints (replacing SFINAE)
  • Better IDE support for auto-completion

Concept Categories:

Result/Optional (core.h):

Callable (callable.h):

Event (event.h):

Service (service.h):

Container (container.h):

Logger (logger.h):

Monitoring (monitoring.h):

Transport (transport.h):