hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
hobbes::unique_refc_map< T, Args > Class Template Reference

#include <ptr.H>

Collaboration diagram for hobbes::unique_refc_map< T, Args >:
Collaboration graph

Public Types

typedef T object_type
 

Public Member Functions

const std::shared_ptr< T > & get (const std::function< T *(Args...)> &mk, const Args &... args)
 
size_t compact ()
 

Private Types

typedef std::unordered_map< std::tuple< Args... >, std::shared_ptr< T >, genHash< std::tuple< Args... > > > Values
 

Private Attributes

std::mutex mutex
 
Values values
 

Member Typedef Documentation

◆ object_type

template<typename T , typename ... Args>
typedef T hobbes::unique_refc_map< T, Args >::object_type

◆ Values

template<typename T , typename ... Args>
typedef std::unordered_map<std::tuple<Args...>, std::shared_ptr<T>, genHash<std::tuple<Args...> > > hobbes::unique_refc_map< T, Args >::Values
private

Member Function Documentation

◆ compact()

template<typename T , typename ... Args>
size_t hobbes::unique_refc_map< T, Args >::compact ( )
inline

◆ get()

template<typename T , typename ... Args>
const std::shared_ptr<T>& hobbes::unique_refc_map< T, Args >::get ( const std::function< T *(Args...)> &  mk,
const Args &...  args 
)
inline

Member Data Documentation

◆ mutex

template<typename T , typename ... Args>
std::mutex hobbes::unique_refc_map< T, Args >::mutex
private

◆ values

template<typename T , typename ... Args>
Values hobbes::unique_refc_map< T, Args >::values
private

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