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

#include <connection.h>

Public Types

using core_type = Core
 
using policy_type = typename Core::policy_type
 
using engine_type = persistent_engine< Core >
 
using session_type = session< engine_type >
 
using world_type = typename engine_type::world_type
 
using contribution_type = typename Core::contribution_type
 
using transaction_type = transaction< Core >
 
using ticket = typename session_type::ticket
 
using publication_type = typename session_type::snapshot_type
 
using store_type = runtime_store< policy_type, random_object_ids, sqlite_catalog_ops, typename Core::runtime_family >
 

Public Member Functions

 connection (std::filesystem::path const &root, std::string_view name, connection_options options={})
 
 connection (connection const &)=delete
 
connection & operator= (connection const &)=delete
 
 connection (connection &&)=delete
 
connection & operator= (connection &&)=delete
 
 ~connection ()
 
transaction_type begin ()
 
world_type snapshot () const
 
session_limits limits () const noexcept
 
publication_type publication () const noexcept
 
std::filesystem::path const & root () const &noexcept
 
std::filesystem::path const & root () const &&=delete
 
template<class S = typed_detail::default_sort_t<policy_type>>
auto range (std::optional< typed_detail::key_t< S > > lo={}, std::optional< typed_detail::key_t< S > > hi={}) const
 
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
world_type erase_range (std::optional< typed_detail::key_t< S > > lo={}, std::optional< typed_detail::key_t< S > > hi={})
 
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
ticket erase_range_async (std::optional< typed_detail::key_t< S > > lo={}, std::optional< typed_detail::key_t< S > > hi={})
 
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>>
requires typed_detail::replacement<S>
world_type 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>
world_type erase (typed_detail::key_t< S > const &key)
 
template<class S = typed_detail::default_sort_t<policy_type>>
world_type 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>
ticket put_async (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>
ticket erase_async (typed_detail::key_t< S > const &key)
 
template<class S = typed_detail::default_sort_t<policy_type>>
ticket change_async (typed_detail::key_t< S > const &key, typed_detail::arrow_t< S > const &arrow)
 
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
std::optional< ticket > try_submit (C &&value)
 
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
ticket submit (C &&value)
 
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
world_type apply (C &&value)
 
bool cancel (ticket const &value)
 
session_reservation outstanding () const
 
std::uint64_t pending_count () const
 
std::exception_ptr failure () const
 
void close ()
 
void shutdown ()
 
void save (std::string_view name) const
 
void save (std::string_view name, world_type const &state) const
 
std::optional< world_type > load (std::string_view name) const
 
connection fork (std::string_view name) const
 
connection fork (std::string_view name, world_type const &state) const
 

Static Private Member Functions

static connection_options checked_options (connection_options options)
 

Private Attributes

std::filesystem::path root_
 
connection_options options_
 
std::shared_ptr< session_type > session_
 
friend transaction_type
 

Member Typedef Documentation

◆ contribution_type

template<class Core = active_engine<>>
using everett::connection< Core >::contribution_type = typename Core::contribution_type

◆ core_type

template<class Core = active_engine<>>
using everett::connection< Core >::core_type = Core

◆ engine_type

template<class Core = active_engine<>>
using everett::connection< Core >::engine_type = persistent_engine<Core>

◆ policy_type

template<class Core = active_engine<>>
using everett::connection< Core >::policy_type = typename Core::policy_type

◆ publication_type

template<class Core = active_engine<>>
using everett::connection< Core >::publication_type = typename session_type::snapshot_type

◆ session_type

template<class Core = active_engine<>>
using everett::connection< Core >::session_type = session<engine_type>

◆ store_type

template<class Core = active_engine<>>
using everett::connection< Core >::store_type = runtime_store<policy_type, random_object_ids, sqlite_catalog_ops, typename Core::runtime_family>

◆ ticket

template<class Core = active_engine<>>
using everett::connection< Core >::ticket = typename session_type::ticket

◆ transaction_type

template<class Core = active_engine<>>
using everett::connection< Core >::transaction_type = transaction<Core>

◆ world_type

template<class Core = active_engine<>>
using everett::connection< Core >::world_type = typename engine_type::world_type

Constructor & Destructor Documentation

◆ connection() [1/3]

template<class Core = active_engine<>>
everett::connection< Core >::connection ( std::filesystem::path const &  root,
std::string_view  name,
connection_options  options = {} 
)
inline

◆ connection() [2/3]

template<class Core = active_engine<>>
everett::connection< Core >::connection ( connection< Core > const &  )
delete

◆ connection() [3/3]

template<class Core = active_engine<>>
everett::connection< Core >::connection ( connection< Core > &&  )
delete

◆ ~connection()

template<class Core = active_engine<>>
everett::connection< Core >::~connection ( )
inline

Member Function Documentation

◆ apply()

template<class Core = active_engine<>>
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
world_type everett::connection< Core >::apply ( C &&  value)
inline

◆ begin()

template<class Core >
auto everett::connection< Core >::begin ( )

◆ cancel()

template<class Core = active_engine<>>
bool everett::connection< Core >::cancel ( ticket const &  value)
inline

◆ change()

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

◆ change_async()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
ticket everett::connection< Core >::change_async ( typed_detail::key_t< S > const &  key,
typed_detail::arrow_t< S > const &  arrow 
)
inline

◆ checked_options()

template<class Core = active_engine<>>
static connection_options everett::connection< Core >::checked_options ( connection_options  options)
inlinestaticprivate

◆ close()

template<class Core = active_engine<>>
void everett::connection< Core >::close ( )
inline

◆ erase()

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

◆ erase_async()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
ticket everett::connection< Core >::erase_async ( typed_detail::key_t< S > const &  key)
inline

◆ erase_range()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
world_type everett::connection< Core >::erase_range ( std::optional< typed_detail::key_t< S > >  lo = {},
std::optional< typed_detail::key_t< S > >  hi = {} 
)
inline

◆ erase_range_async()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
ticket everett::connection< Core >::erase_range_async ( std::optional< typed_detail::key_t< S > >  lo = {},
std::optional< typed_detail::key_t< S > >  hi = {} 
)
inline

◆ failure()

template<class Core = active_engine<>>
std::exception_ptr everett::connection< Core >::failure ( ) const
inline

◆ fork() [1/2]

template<class Core = active_engine<>>
connection everett::connection< Core >::fork ( std::string_view  name) const
inline

◆ fork() [2/2]

template<class Core = active_engine<>>
connection everett::connection< Core >::fork ( std::string_view  name,
world_type const &  state 
) const
inline

◆ get()

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

◆ limits()

template<class Core = active_engine<>>
session_limits everett::connection< Core >::limits ( ) const
inlinenoexcept

◆ load()

template<class Core = active_engine<>>
std::optional< world_type > everett::connection< Core >::load ( std::string_view  name) const
inline

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ outstanding()

template<class Core = active_engine<>>
session_reservation everett::connection< Core >::outstanding ( ) const
inline

◆ pending_count()

template<class Core = active_engine<>>
std::uint64_t everett::connection< Core >::pending_count ( ) const
inline

◆ publication()

template<class Core = active_engine<>>
publication_type everett::connection< Core >::publication ( ) const
inlinenoexcept

◆ put()

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

◆ put_async()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
requires typed_detail::replacement<S>
ticket everett::connection< Core >::put_async ( typed_detail::key_t< S > const &  key,
typed_detail::state_t< S > const &  value 
)
inline

◆ range()

template<class Core = active_engine<>>
template<class S = typed_detail::default_sort_t<policy_type>>
auto everett::connection< Core >::range ( std::optional< typed_detail::key_t< S > >  lo = {},
std::optional< typed_detail::key_t< S > >  hi = {} 
) const
inline

◆ root() [1/2]

template<class Core = active_engine<>>
std::filesystem::path const & everett::connection< Core >::root ( ) const &&
delete

◆ root() [2/2]

template<class Core = active_engine<>>
std::filesystem::path const & everett::connection< Core >::root ( ) const &
inlinenoexcept

◆ save() [1/2]

template<class Core = active_engine<>>
void everett::connection< Core >::save ( std::string_view  name) const
inline

◆ save() [2/2]

template<class Core = active_engine<>>
void everett::connection< Core >::save ( std::string_view  name,
world_type const &  state 
) const
inline

◆ shutdown()

template<class Core = active_engine<>>
void everett::connection< Core >::shutdown ( )
inline

◆ snapshot()

template<class Core = active_engine<>>
world_type everett::connection< Core >::snapshot ( ) const
inline

◆ submit()

template<class Core = active_engine<>>
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
ticket everett::connection< Core >::submit ( C &&  value)
inline

◆ try_submit()

template<class Core = active_engine<>>
template<class C >
requires std::same_as<std::remove_cvref_t<C>, contribution_type>
std::optional< ticket > everett::connection< Core >::try_submit ( C &&  value)
inline

Member Data Documentation

◆ options_

template<class Core = active_engine<>>
connection_options everett::connection< Core >::options_
private

◆ root_

template<class Core = active_engine<>>
std::filesystem::path everett::connection< Core >::root_
private

◆ session_

template<class Core = active_engine<>>
std::shared_ptr<session_type> everett::connection< Core >::session_
private

◆ transaction_type

template<class Core = active_engine<>>
friend everett::connection< Core >::transaction_type
private

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