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

Adapter traits and base class for type-erased cross-system wrappers. More...

#include <atomic>
#include <memory>
#include <optional>
#include <stdexcept>
#include <string>
#include <type_traits>
Include dependency graph for adapter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::common::adapters::adapter_traits< T >
 Primary adapter_traits template for value types. More...
 
struct  kcenon::common::adapters::adapter_traits< std::shared_ptr< T > >
 Specialization for std::shared_ptr. More...
 
struct  kcenon::common::adapters::adapter_traits< std::unique_ptr< T, Deleter > >
 Specialization for std::unique_ptr. More...
 
class  kcenon::common::adapters::adapter_base
 Base class for adapter interface to eliminate RTTI dependency. More...
 
class  kcenon::common::adapters::adapter< T, Traits >
 Unified adapter template for wrapping values or smart pointers. More...
 
class  kcenon::common::adapters::interface_adapter< Interface, Implementation >
 Interface adapter with type safety and depth tracking. More...
 
class  kcenon::common::adapters::adapter_factory
 Smart adapter factory that avoids unnecessary wrapping. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::common
 Core interfaces.
 
namespace  kcenon::common::adapters
 

Functions

template<typename T >
 kcenon::common::adapters::adapter (T) -> adapter< T >
 
template<typename T >
 kcenon::common::adapters::adapter (std::shared_ptr< T >) -> adapter< std::shared_ptr< T > >
 
template<typename T , typename D >
 kcenon::common::adapters::adapter (std::unique_ptr< T, D >) -> adapter< std::unique_ptr< T, D > >
 
template<typename T , typename... Args>
auto kcenon::common::adapters::make_adapter (Args &&... args)
 Factory function to create adapter with in-place construction.
 
template<typename T , typename... Args>
auto kcenon::common::adapters::make_shared_adapter (Args &&... args)
 Factory function to create adapter wrapping shared_ptr.
 
template<typename T , typename... Args>
auto kcenon::common::adapters::make_unique_adapter (Args &&... args)
 Factory function to create adapter wrapping unique_ptr.
 
template<typename T , typename Interface >
std::shared_ptr< T > kcenon::common::adapters::safe_unwrap (std::shared_ptr< Interface > ptr)
 Helper function to safely unwrap an adapter.
 
template<typename Interface >
bool kcenon::common::adapters::is_adapter (std::shared_ptr< Interface > ptr)
 Check if an interface pointer is actually an adapter.
 
template<typename Interface , typename Impl >
std::shared_ptr< Interface > kcenon::common::adapters::make_interface_adapter (std::shared_ptr< Impl > impl)
 Convenience function for creating smart adapters.
 
template<typename T , typename Interface >
std::shared_ptr< T > kcenon::common::adapters::unwrap_adapter (std::shared_ptr< Interface > ptr)
 Convenience function for unwrapping adapters.
 

Variables

template<typename T , typename Interface >
constexpr bool kcenon::common::adapters::implements_interface_v
 Type trait to check if a type implements an interface.
 

Detailed Description

Adapter traits and base class for type-erased cross-system wrappers.

See also
smart_adapter.h For the ownership-managing adapter variant

Definition in file adapter.h.