prom 0.1.0
Client-independent C++23 Prometheus/OpenMetrics metric abstraction
Loading...
Searching...
No Matches
Public Member Functions | List of all members
prom::AdapterCell Class Referencefinal

A swappable adapter slot shared by every metric that reads from it. More...

#include <global.hpp>

Inheritance diagram for prom::AdapterCell:
Inheritance graph
[legend]
Collaboration diagram for prom::AdapterCell:
Collaboration graph
[legend]

Public Member Functions

 AdapterCell ()
 
 AdapterCell (AdapterPtr adapter)
 Construct with adapter (or a fresh NullAdapter when null).
 
std::uint64_t version () const noexcept override
 Monotonic counter, bumped on every adapter swap.
 
AdapterPtr adapter () const override
 The current adapter, never null.
 
void set_adapter (AdapterPtr adapter)
 Install adapter as the new backend (or reset to a fresh NullAdapter when null) and bump the version so reading metrics re-register.
 
- Public Member Functions inherited from prom::AdapterSource
 AdapterSource ()=default
 
 AdapterSource (const AdapterSource &)=delete
 
AdapterSourceoperator= (const AdapterSource &)=delete
 
 AdapterSource (AdapterSource &&)=delete
 
AdapterSourceoperator= (AdapterSource &&)=delete
 
virtual ~AdapterSource ()=default
 

Detailed Description

A swappable adapter slot shared by every metric that reads from it.

Holds a NullAdapter by default; set_adapter installs a new backend and bumps version(), which is how already-created metrics learn to re-register against the new adapter on their next use.

Constructor & Destructor Documentation

◆ AdapterCell() [1/2]

prom::AdapterCell::AdapterCell ( )
inline

◆ AdapterCell() [2/2]

prom::AdapterCell::AdapterCell ( AdapterPtr  adapter)
inlineexplicit

Construct with adapter (or a fresh NullAdapter when null).

Member Function Documentation

◆ adapter()

AdapterPtr prom::AdapterCell::adapter ( ) const
inlineoverridevirtual

The current adapter, never null.

Returns a shared_ptr copy so a concurrent swap cannot invalidate the adapter an in-flight caller uses.

Implements prom::AdapterSource.

◆ set_adapter()

void prom::AdapterCell::set_adapter ( AdapterPtr  adapter)
inline

Install adapter as the new backend (or reset to a fresh NullAdapter when null) and bump the version so reading metrics re-register.

◆ version()

std::uint64_t prom::AdapterCell::version ( ) const
inlineoverridevirtualnoexcept

Monotonic counter, bumped on every adapter swap.

Implements prom::AdapterSource.


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