Monero
Loading...
Searching...
No Matches
el::base::utils::Registry< T_Ptr, T_Key > Class Template Reference

A pointer registry mechanism to manage memory and provide search functionalities. (non-predicate version). More...

#include <easylogging++.h>

Inheritance diagram for el::base::utils::Registry< T_Ptr, T_Key >:
Collaboration diagram for el::base::utils::Registry< T_Ptr, T_Key >:

Public Types

typedef Registry< T_Ptr, T_Key >::iterator iterator
typedef Registry< T_Ptr, T_Key >::const_iterator const_iterator
Public Types inherited from el::base::utils::AbstractRegistry< T_Ptr, Container >
typedef Container::iterator iterator
typedef Container::const_iterator const_iterator

Public Member Functions

 Registry (void)
 Registry (const Registry &sr)
 Copy constructor that is useful for base classes. Try to avoid this constructor, use move constructor.
Registryoperator= (const Registry &sr)
 Assignment operator that unregisters all the existing registeries and deeply copies each of repo element.
virtual ~Registry (void)
Public Member Functions inherited from el::base::utils::AbstractRegistry< T_Ptr, Container >
 AbstractRegistry (void)
 Default constructor.
 AbstractRegistry (AbstractRegistry &&sr)
 Move constructor that is useful for base classes.
bool operator== (const AbstractRegistry< T_Ptr, Container > &other)
bool operator!= (const AbstractRegistry< T_Ptr, Container > &other)
AbstractRegistryoperator= (AbstractRegistry &&sr)
 Assignment move operator.
virtual ~AbstractRegistry (void)
virtual iterator begin (void) ELPP_FINAL
virtual iterator end (void) ELPP_FINAL
virtual const_iterator cbegin (void) const ELPP_FINAL
virtual const_iterator cend (void) const ELPP_FINAL
virtual bool empty (void) const ELPP_FINAL
virtual std::size_t size (void) const ELPP_FINAL
virtual Container & list (void) ELPP_FINAL
 Returns underlying container by reference.
virtual const Container & list (void) const ELPP_FINAL
 Returns underlying container by constant reference.
Public Member Functions inherited from el::base::threading::ThreadSafe
virtual void acquireLock (void) ELPP_FINAL
virtual void releaseLock (void) ELPP_FINAL
virtual base::threading::Mutexlock (void) ELPP_FINAL

Protected Member Functions

virtual void unregisterAll (void) ELPP_FINAL
 Unregisters all the pointers from current repository.
virtual void registerNew (const T_Key &uniqKey, T_Ptr *ptr) ELPP_FINAL
 Registers new registry to repository.
void unregister (const T_Key &uniqKey)
 Unregisters single entry mapped to specified unique key.
T_Ptr * get (const T_Key &uniqKey)
 Gets pointer from repository. If none found, nullptr is returned.
Protected Member Functions inherited from el::base::utils::AbstractRegistry< T_Ptr, Container >
virtual void deepCopy (const AbstractRegistry< T_Ptr, Container > &)=0
void reinitDeepCopy (const AbstractRegistry< T_Ptr, Container > &sr)
Protected Member Functions inherited from el::base::threading::ThreadSafe
 ThreadSafe (void)
virtual ~ThreadSafe (void)

Private Member Functions

virtual void deepCopy (const AbstractRegistry< T_Ptr, std::unordered_map< T_Key, T_Ptr * > > &sr) ELPP_FINAL

Detailed Description

template<typename T_Ptr, typename T_Key = const char*>
class el::base::utils::Registry< T_Ptr, T_Key >

A pointer registry mechanism to manage memory and provide search functionalities. (non-predicate version).

@detail NOTE: This is thread-unsafe implementation (although it contains lock function, it does not use these functions) of AbstractRegistry<T_Ptr, Container>. Any implementation of this class should be explicitly (by using lock functions)

Member Typedef Documentation

◆ const_iterator

template<typename T_Ptr, typename T_Key = const char*>
typedef Registry<T_Ptr,T_Key>::const_iterator el::base::utils::Registry< T_Ptr, T_Key >::const_iterator

◆ iterator

template<typename T_Ptr, typename T_Key = const char*>
typedef Registry<T_Ptr,T_Key>::iterator el::base::utils::Registry< T_Ptr, T_Key >::iterator

Constructor & Destructor Documentation

◆ Registry() [1/2]

template<typename T_Ptr, typename T_Key = const char*>
el::base::utils::Registry< T_Ptr, T_Key >::Registry ( void )
inline

◆ Registry() [2/2]

template<typename T_Ptr, typename T_Key = const char*>
el::base::utils::Registry< T_Ptr, T_Key >::Registry ( const Registry< T_Ptr, T_Key > & sr)
inline

Copy constructor that is useful for base classes. Try to avoid this constructor, use move constructor.

◆ ~Registry()

template<typename T_Ptr, typename T_Key = const char*>
virtual el::base::utils::Registry< T_Ptr, T_Key >::~Registry ( void )
inlinevirtual

Member Function Documentation

◆ deepCopy()

template<typename T_Ptr, typename T_Key = const char*>
virtual void el::base::utils::Registry< T_Ptr, T_Key >::deepCopy ( const AbstractRegistry< T_Ptr, std::unordered_map< T_Key, T_Ptr * > > & sr)
inlineprivatevirtual

◆ get()

template<typename T_Ptr, typename T_Key = const char*>
T_Ptr * el::base::utils::Registry< T_Ptr, T_Key >::get ( const T_Key & uniqKey)
inlineprotected

Gets pointer from repository. If none found, nullptr is returned.

◆ operator=()

template<typename T_Ptr, typename T_Key = const char*>
Registry & el::base::utils::Registry< T_Ptr, T_Key >::operator= ( const Registry< T_Ptr, T_Key > & sr)
inline

Assignment operator that unregisters all the existing registeries and deeply copies each of repo element.

See also
unregisterAll()
deepCopy(const AbstractRegistry&)

◆ registerNew()

template<typename T_Ptr, typename T_Key = const char*>
virtual void el::base::utils::Registry< T_Ptr, T_Key >::registerNew ( const T_Key & uniqKey,
T_Ptr * ptr )
inlineprotectedvirtual

Registers new registry to repository.

◆ unregister()

template<typename T_Ptr, typename T_Key = const char*>
void el::base::utils::Registry< T_Ptr, T_Key >::unregister ( const T_Key & uniqKey)
inlineprotected

Unregisters single entry mapped to specified unique key.

◆ unregisterAll()

template<typename T_Ptr, typename T_Key = const char*>
virtual void el::base::utils::Registry< T_Ptr, T_Key >::unregisterAll ( void )
inlineprotectedvirtual

Unregisters all the pointers from current repository.

Implements el::base::utils::AbstractRegistry< T_Ptr, Container >.


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