Everett
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
everett::transaction< Core > Struct Template Reference

#include <transaction.h>

Classes

struct  nursery_value
 
struct  origin
 
struct  snapshot_type
 
struct  stage
 

Public Types

using policy_type = typename Core::policy_type
 
using family_type = typename Core::runtime_family
 
using transport = typed_detail::transport_t< policy_type, family_type >
 
using world_type = typename Core::world_type
 
using connection_type = connection< Core >
 
using engine_type = typename connection_type::engine_type
 
using session_type = typename connection_type::session_type
 
using stored_type = typename connection_type::world_type
 
using ticket = typename connection_type::ticket
 
using nursery_type = nursery_map< bit_string, nursery_value, transaction_detail::key_less< typename policy_type::architecture > >
 
using scope_type = private_construction< policy_type >
 
using store_type = typename connection_type::store_type
 

Public Member Functions

 transaction (transaction const &)=delete
 
transaction & operator= (transaction const &)=delete
 
 transaction (transaction &&)=default
 
transaction & operator= (transaction &&)=delete
 
snapshot_type snapshot ()
 
template<class S = typed_detail::default_sort_t<policy_type>>
auto get (typed_detail::key_t< S > const &key) const
 
template<class S = typed_detail::default_sort_t<policy_type>>
void change (typed_detail::key_t< S > const &key, typed_detail::arrow_t< S > const &arrow)
 
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
void put (typed_detail::key_t< S > const &key, typed_detail::state_t< S > const &value)
 
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
void erase (typed_detail::key_t< S > const &key)
 
snapshot_type flush ()
 
ticket commit_async ()
 
stored_type commit ()
 
void abort () noexcept
 
bool failed () const noexcept
 

Private Member Functions

 transaction (connection_type &connection)
 
 transaction (snapshot_type const &saved)
 
void ensure_core ()
 
void require_active () const
 
void release () noexcept
 

Private Attributes

std::shared_ptr< origin const > origin_
 
std::shared_ptr< stage const > stage_
 
std::optional< nursery_type > nursery_ {std::in_place}
 
std::shared_ptr< scope_type > scope_
 
std::unique_ptr< store_type > store_
 
std::unique_ptr< Core > core_
 
bool closed_ = false
 
bool failed_ = false
 
friend connection_type
 

Member Typedef Documentation

◆ connection_type

template<class Core >
using everett::transaction< Core >::connection_type = connection<Core>

◆ engine_type

template<class Core >
using everett::transaction< Core >::engine_type = typename connection_type::engine_type

◆ family_type

template<class Core >
using everett::transaction< Core >::family_type = typename Core::runtime_family

◆ nursery_type

template<class Core >
using everett::transaction< Core >::nursery_type = nursery_map<bit_string, nursery_value, transaction_detail::key_less<typename policy_type::architecture> >

◆ policy_type

template<class Core >
using everett::transaction< Core >::policy_type = typename Core::policy_type

◆ scope_type

template<class Core >
using everett::transaction< Core >::scope_type = private_construction<policy_type>

◆ session_type

template<class Core >
using everett::transaction< Core >::session_type = typename connection_type::session_type

◆ store_type

template<class Core >
using everett::transaction< Core >::store_type = typename connection_type::store_type

◆ stored_type

template<class Core >
using everett::transaction< Core >::stored_type = typename connection_type::world_type

◆ ticket

template<class Core >
using everett::transaction< Core >::ticket = typename connection_type::ticket

◆ transport

template<class Core >
using everett::transaction< Core >::transport = typed_detail::transport_t<policy_type, family_type>

◆ world_type

template<class Core >
using everett::transaction< Core >::world_type = typename Core::world_type

Constructor & Destructor Documentation

◆ transaction() [1/4]

template<class Core >
everett::transaction< Core >::transaction ( transaction< Core > const &  )
delete

◆ transaction() [2/4]

template<class Core >
everett::transaction< Core >::transaction ( transaction< Core > &&  )
default

◆ transaction() [3/4]

template<class Core >
everett::transaction< Core >::transaction ( connection_type &  connection)
inlineexplicitprivate

◆ transaction() [4/4]

template<class Core >
everett::transaction< Core >::transaction ( snapshot_type const &  saved)
inlineexplicitprivate

Member Function Documentation

◆ abort()

template<class Core >
void everett::transaction< Core >::abort ( )
inlinenoexcept

◆ change()

template<class Core >
template<class S = typed_detail::default_sort_t<policy_type>>
void everett::transaction< Core >::change ( typed_detail::key_t< S > const &  key,
typed_detail::arrow_t< S > const &  arrow 
)
inline

◆ commit()

template<class Core >
stored_type everett::transaction< Core >::commit ( )
inline

◆ commit_async()

template<class Core >
ticket everett::transaction< Core >::commit_async ( )
inline

◆ ensure_core()

template<class Core >
void everett::transaction< Core >::ensure_core ( )
inlineprivate

◆ erase()

template<class Core >
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
void everett::transaction< Core >::erase ( typed_detail::key_t< S > const &  key)
inline

◆ failed()

template<class Core >
bool everett::transaction< Core >::failed ( ) const
inlinenoexcept

◆ flush()

template<class Core >
snapshot_type everett::transaction< Core >::flush ( )
inline

◆ get()

template<class Core >
template<class S = typed_detail::default_sort_t<policy_type>>
auto everett::transaction< Core >::get ( typed_detail::key_t< S > const &  key) const
inline

◆ operator=() [1/2]

template<class Core >
transaction & everett::transaction< Core >::operator= ( transaction< Core > &&  )
delete

◆ operator=() [2/2]

template<class Core >
transaction & everett::transaction< Core >::operator= ( transaction< Core > const &  )
delete

◆ put()

template<class Core >
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
void everett::transaction< Core >::put ( typed_detail::key_t< S > const &  key,
typed_detail::state_t< S > const &  value 
)
inline

◆ release()

template<class Core >
void everett::transaction< Core >::release ( )
inlineprivatenoexcept

◆ require_active()

template<class Core >
void everett::transaction< Core >::require_active ( ) const
inlineprivate

◆ snapshot()

template<class Core >
snapshot_type everett::transaction< Core >::snapshot ( )
inline

Member Data Documentation

◆ closed_

template<class Core >
bool everett::transaction< Core >::closed_ = false
private

◆ connection_type

template<class Core >
friend everett::transaction< Core >::connection_type
private

◆ core_

template<class Core >
std::unique_ptr<Core> everett::transaction< Core >::core_
private

◆ failed_

template<class Core >
bool everett::transaction< Core >::failed_ = false
private

◆ nursery_

template<class Core >
std::optional<nursery_type> everett::transaction< Core >::nursery_ {std::in_place}
private

◆ origin_

template<class Core >
std::shared_ptr<origin const> everett::transaction< Core >::origin_
private

◆ scope_

template<class Core >
std::shared_ptr<scope_type> everett::transaction< Core >::scope_
private

◆ stage_

template<class Core >
std::shared_ptr<stage const> everett::transaction< Core >::stage_
private

◆ store_

template<class Core >
std::unique_ptr<store_type> everett::transaction< Core >::store_
private

The documentation for this struct was generated from the following files: