RDFS
The Rice Comp413 2017 class' continuation on the work of the 2016 RDFS.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Types | Public Member Functions | Protected Member Functions | List of all members
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 >:
el::base::utils::AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > > el::base::threading::ThreadSafe

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, std::map< T_Key, T_Ptr * > >
typedef std::map< T_Key, T_Ptr * >
::iterator 
iterator
 
typedef std::map< T_Key, T_Ptr * >
::const_iterator 
const_iterator
 

Public Member Functions

 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. More...
 
- Public Member Functions inherited from el::base::utils::AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > >
 AbstractRegistry (void)
 Default constructor.
 
 AbstractRegistry (AbstractRegistry &&sr)
 Move constructor that is useful for base classes.
 
bool operator== (const AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > > &other)
 
bool operator!= (const AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > > &other)
 
AbstractRegistryoperator= (AbstractRegistry &&sr)
 Assignment move operator.
 
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 std::map< T_Key, T_Ptr * > & list (void) ELPP_FINAL
 Returns underlying container by reference.
 
virtual const std::map< T_Key,
T_Ptr * > & 
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, std::map< T_Key, T_Ptr * > >
virtual void deepCopy (const AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > > &)=0
 
void reinitDeepCopy (const AbstractRegistry< T_Ptr, std::map< T_Key, T_Ptr * > > &sr)
 

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)

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 Function Documentation

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&)

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