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::AbstractRegistry< T_Ptr, Container > Class Template Referenceabstract

Abstract registry (aka repository) that provides basic interface for pointer repository specified by T_Ptr type. More...

#include <easylogging++.h>

Inheritance diagram for el::base::utils::AbstractRegistry< T_Ptr, Container >:
el::base::threading::ThreadSafe

Public Types

typedef Container::iterator iterator
 
typedef Container::const_iterator const_iterator
 

Public Member Functions

 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 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.
 
virtual void unregisterAll (void)=0
 Unregisters all the pointers from current repository.
 
- 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 deepCopy (const AbstractRegistry< T_Ptr, Container > &)=0
 
void reinitDeepCopy (const AbstractRegistry< T_Ptr, Container > &sr)
 

Detailed Description

template<typename T_Ptr, typename Container>
class el::base::utils::AbstractRegistry< T_Ptr, Container >

Abstract registry (aka repository) that provides basic interface for pointer repository specified by T_Ptr type.

Most of the functions are virtual final methods but anything implementing this abstract class should implement unregisterAll() and deepCopy(const AbstractRegistry<T_Ptr, Container>&) and write registerNew() method according to container and few more methods; get() to find element, unregister() to unregister single entry. Please note that this is thread-unsafe and should also implement thread-safety mechanisms in implementation.

Member Function Documentation

template<typename T_Ptr, typename Container>
virtual iterator el::base::utils::AbstractRegistry< T_Ptr, Container >::begin ( void  )
inlinevirtual
Returns
Iterator pointer from start of repository
template<typename T_Ptr, typename Container>
virtual const_iterator el::base::utils::AbstractRegistry< T_Ptr, Container >::cbegin ( void  ) const
inlinevirtual
Returns
Constant iterator pointer from start of repository
template<typename T_Ptr, typename Container>
virtual const_iterator el::base::utils::AbstractRegistry< T_Ptr, Container >::cend ( void  ) const
inlinevirtual
Returns
End of repository
template<typename T_Ptr, typename Container>
virtual bool el::base::utils::AbstractRegistry< T_Ptr, Container >::empty ( void  ) const
inlinevirtual
Returns
Whether or not repository is empty
template<typename T_Ptr, typename Container>
virtual iterator el::base::utils::AbstractRegistry< T_Ptr, Container >::end ( void  )
inlinevirtual
Returns
Iterator pointer from end of repository
template<typename T_Ptr, typename Container>
virtual std::size_t el::base::utils::AbstractRegistry< T_Ptr, Container >::size ( void  ) const
inlinevirtual
Returns
Size of repository

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