PtrListDictionary< T > Class Template Reference

Template dictionary class which manages the storage associated with it. More...

Inheritance diagram for PtrListDictionary< T >:
[legend]
Collaboration diagram for PtrListDictionary< T >:
[legend]

Public Member Functions

 PtrListDictionary (const label size)
 Construct given initial list size. More...
 
 PtrListDictionary (const PtrListDictionary &dict)
 Copy construct. More...
 
template<class INew >
 PtrListDictionary (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class. More...
 
 PtrListDictionary (Istream &is)
 Construct from Istream. More...
 
autoPtr< Tset (const label i, const word &key, T *ptr)
 Set element to pointer provided and return old element. More...
 
autoPtr< Tset (const label i, const word &key, autoPtr< T > &aptr)
 Set element to autoPtr value provided and return old element. More...
 
autoPtr< Tset (const label i, const word &key, tmp< T > &t)
 Set element to tmp value provided and return old element. More...
 
const Toperator[] (const word &key) const
 Find and return entry. More...
 
Toperator[] (const word &key)
 Find and return entry. More...
 
- Public Member Functions inherited from DictionaryBase< PtrList< T >, T >
 DictionaryBase (const label size=128)
 Construct with given or default (128) table capacity. More...
 
 DictionaryBase (const DictionaryBase &dict)
 Copy construct. More...
 
 DictionaryBase (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class. More...
 
 DictionaryBase (Istream &is)
 Construct from Istream using default Istream constructor class. More...
 
bool found (const word &keyword) const
 Search for given keyword. More...
 
const Tcfind (const word &keyword) const
 Find and return an entry, nullptr on failure. More...
 
Tfind (const word &keyword)
 Find and return an entry, nullptr on failure. More...
 
const Tlookup (const word &keyword) const
 Find and return entry, FatalError on failure. More...
 
Tlookup (const word &keyword)
 Find and return entry, FatalError on failure. More...
 
wordList toc () const
 Return the table of contents (as a sorted list) More...
 
wordList sortedToc () const
 Return the table of contents as a sorted list. More...
 
wordList sortedToc (const Compare &comp) const
 Return table of contents sorted using the specified comparator. More...
 
Foam::wordList sortedToc (const Compare &comp) const
 
void prepend (const word &keyword, T *ptr)
 Add to front of dictionary. More...
 
void append (const word &keyword, T *ptr)
 Add to back of dictionary. More...
 
Tremove (const word &keyword)
 Remove and return entry specified by keyword. More...
 
void clear ()
 Clear the dictionary. More...
 
void transfer (DictionaryBase< PtrList< T >, T > &dict)
 Transfer the contents of the argument into this DictionaryBase. More...
 
void operator= (const DictionaryBase &)
 Copy assignment. More...
 
const Toperator[] (const word &key) const
 Find and return entry. More...
 
Toperator[] (const word &key)
 Find and return entry. More...
 
const TlookupPtr (const word &keyword) const
 Deprecated(2020-03) use cfind() More...
 
TlookupPtr (const word &keyword)
 Deprecated(2020-03) use find() More...
 
void insert (const word &keyword, T *ptr)
 Add to front of dictionary. More...
 
- Public Member Functions inherited from PtrList< T >
constexpr PtrList () noexcept
 Default construct. More...
 
 PtrList (const label len)
 Construct with specified size, each element initialized to nullptr. More...
 
 PtrList (const PtrList< T > &list)
 Copy construct using 'clone()' method on each element. More...
 
 PtrList (PtrList< T > &&list)
 Move construct. More...
 
 PtrList (UList< T * > &list)
 Take ownership of pointers in the list, set old pointers to null. More...
 
template<class CloneArg >
 PtrList (const PtrList< T > &list, const CloneArg &cloneArgs)
 Copy construct using 'clone()' method on each element. More...
 
 PtrList (PtrList< T > &list, bool reuse)
 Construct as copy or re-use as specified. More...
 
 PtrList (const SLPtrList< T > &list)
 Copy construct using 'clone()' on each element of SLPtrList<T> More...
 
template<class INew >
 PtrList (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class. More...
 
 PtrList (Istream &is)
 Construct from Istream using default Istream constructor class. More...
 
 ~PtrList ()
 Destructor. More...
 
template<class... Args>
PtrList< Tclone (Args &&... args) const
 Make a copy by cloning each of the list elements. More...
 
const Tset (const label i) const
 
void clear ()
 Clear the PtrList. Delete allocated entries and set size to zero. More...
 
void resize (const label newLen)
 Adjust size of PtrList. More...
 
void setSize (const label newLen)
 Same as resize() More...
 
template<class... Args>
void emplace_append (Args &&... args)
 Construct and append an element to the end of the list. More...
 
void append (T *ptr)
 Append an element to the end of the list. More...
 
void append (autoPtr< T > &ptr)
 Move append an element to the end of the list. More...
 
void append (autoPtr< T > &&ptr)
 Move append an element to the end of the list. More...
 
void append (std::unique_ptr< T > &&ptr)
 Move append an element to the end of the list. More...
 
void append (const refPtr< T > &ptr)
 Move or clone append a refPtr to the end of the list. More...
 
void append (const tmp< T > &ptr)
 Move or clone append a tmp to the end of the list. More...
 
void append (PtrList< T > &&other)
 Move append another list to the end of this list. More...
 
template<class... Args>
autoPtr< Templace (const label i, Args &&... args)
 Construct and set an element. More...
 
autoPtr< Tset (const label i, T *ptr)
 Set element to given pointer and return old element (can be null) More...
 
autoPtr< Tset (const label i, autoPtr< T > &ptr)
 Set element to given autoPtr and return old element. More...
 
autoPtr< Tset (const label i, autoPtr< T > &&ptr)
 Set element to given autoPtr and return old element. More...
 
autoPtr< Tset (const label i, std::unique_ptr< T > &&ptr)
 Set element to given unique_ptr and return old element. More...
 
autoPtr< Tset (const label i, const refPtr< T > &ptr)
 Set element to given refPtr and return old element. More...
 
autoPtr< Tset (const label i, const tmp< T > &ptr)
 Set element to given tmp and return old element. More...
 
autoPtr< Trelease (const label i)
 Release ownership of the pointer at the given position. More...
 
void transfer (PtrList< T > &list)
 Transfer into this list and annul the argument list. More...
 
void operator= (const PtrList< T > &list)
 Copy assignment. More...
 
void operator= (PtrList< T > &&list)
 Move assignment. More...
 
template<class... Args>
Foam::PtrList< Tclone (Args &&... args) const
 
template<class... Args>
Foam::autoPtr< Templace (const label i, Args &&... args)
 
- Public Member Functions inherited from UPtrList< T >
constexpr UPtrList () noexcept
 Default construct. More...
 
 UPtrList (const label len)
 Construct with specified size, each element initialized to nullptr. More...
 
 UPtrList (const UPtrList< T > &list)
 Copy construct (shallow copies addresses) More...
 
 UPtrList (UPtrList< T > &&list)
 Move construct. More...
 
 UPtrList (UPtrList< T > &list, bool reuse)
 Construct as shallow copy or re-use as specified. More...
 
 UPtrList (PtrList< T > &list)
 Shallow copy from PtrList. More...
 
 UPtrList (const UList< T * > &list)
 Construct from UList of pointers (shallow copy) More...
 
 UPtrList (UList< T > &list)
 Construct from UList, taking the address of each list element. More...
 
label size () const noexcept
 The number of elements in the list. More...
 
bool empty () const noexcept
 True if the list is empty (ie, size() is zero) More...
 
Tfirst ()
 Return reference to the first element of the list. More...
 
const Tfirst () const
 Return reference to first element of the list. More...
 
Tlast ()
 Return reference to the last element of the list. More...
 
const Tlast () const
 Return reference to the last element of the list. More...
 
const Ttest (const label i) const
 
Tget (const label i)
 
const Tget (const label i) const
 
const Tset (const label i) const
 
void clear ()
 Set list size to zero. More...
 
void resize (const label newLen)
 Change the size of the list. More...
 
void setSize (const label n)
 Alias for resize() More...
 
label squeezeNull ()
 Squeeze out intermediate nullptr entries in the list of pointers. More...
 
void append (T *ptr)
 Append an element to the end of the list. More...
 
void append (UPtrList< T > &&other)
 Move append another list to the end of this list. More...
 
void swap (UPtrList< T > &list)
 Swap content. More...
 
void transfer (UPtrList< T > &list)
 Transfer contents into this list and annul the argument. More...
 
Tset (const label i, T *ptr)
 
void reorder (const labelUList &oldToNew, const bool check=false)
 
void sortOrder (const labelUList &order, const bool check=false)
 
void checkNonNull () const
 Check and raise FatalError if any nullptr exists in the list. More...
 
const Toperator[] (const label i) const
 Return const reference to the element. More...
 
Toperator[] (const label i)
 Return reference to the element. More...
 
const Toperator() (const label i) const
 Return const pointer to the element - same as get(). More...
 
void operator= (const UPtrList< T > &list)
 Copy assignment (shallow copies addresses) More...
 
void operator= (UPtrList< T > &&list)
 Move assignment. More...
 
T ** begin_ptr () noexcept
 Iterator to begin of raw pointers traversal (use with caution) More...
 
T ** end_ptr () noexcept
 Iterator beyond end of raw pointers traversal (use with caution) More...
 
iterator begin () noexcept
 Return an iterator to begin of UPtrList traversal. More...
 
iterator end () noexcept
 Return iterator beyond end of UPtrList traversal. More...
 
const_iterator cbegin () const noexcept
 Return const_iterator to begin of UPtrList traversal. More...
 
const_iterator cend () const noexcept
 Return const_iterator beyond end of UPtrList traversal. More...
 
const_iterator begin () const noexcept
 Return const_iterator to begin of UPtrList traversal. More...
 
const_iterator end () const noexcept
 Return const_iterator beyond end of UPtrList traversal. More...
 

Additional Inherited Members

- Public Types inherited from UPtrList< T >
typedef T value_type
 Type of values the list contains. More...
 
typedef Treference
 A non-const reference to the value_type. More...
 
typedef const Tconst_reference
 A const reference to the value_type. More...
 
- Protected Member Functions inherited from DictionaryBase< PtrList< T >, T >
void addEntries ()
 
- Protected Member Functions inherited from PtrList< T >
template<class INew >
void readIstream (Istream &is, const INew &inew)
 Read from Istream using Istream constructor class. More...
 
void free ()
 Delete the allocated entries, but retain the list size. More...
 
- Protected Member Functions inherited from UPtrList< T >
void setAddressableSize (const label n) noexcept
 Adjust addressable size. More...
 
 UPtrList (Detail::PtrListDetail< T > &&ptrs)
 Low-level move construct. More...
 
- Protected Attributes inherited from DictionaryBase< PtrList< T >, T >
HashTable< T * > hashedTs_
 HashTable of the entries held on the IDLListType for quick lookup. More...
 
- Protected Attributes inherited from UPtrList< T >
Detail::PtrListDetail< Tptrs_
 The list of pointers. More...
 

Detailed Description

template<class T>
class Foam::PtrListDictionary< T >

Template dictionary class which manages the storage associated with it.

It is derived from DictionaryBase instantiated on the memory managed PtrList of <T> to provide ordered indexing in addition to the dictionary lookup.

Source files

Definition at line 55 of file PtrListDictionary.H.

Constructor & Destructor Documentation

◆ PtrListDictionary() [1/4]

PtrListDictionary ( const label  size)
explicit

Construct given initial list size.

Definition at line 33 of file PtrListDictionary.C.

References Euler::resize(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ PtrListDictionary() [2/4]

PtrListDictionary ( const PtrListDictionary< T > &  dict)

Copy construct.

Definition at line 42 of file PtrListDictionary.C.

◆ PtrListDictionary() [3/4]

PtrListDictionary ( Istream is,
const INew inew 
)

Construct from Istream using given Istream constructor class.

Definition at line 50 of file PtrListDictionary.C.

◆ PtrListDictionary() [4/4]

PtrListDictionary ( Istream is)
explicit

Construct from Istream.

Definition at line 57 of file PtrListDictionary.C.

Member Function Documentation

◆ set() [1/3]

Foam::autoPtr< T > set ( const label  i,
const word key,
T ptr 
)
inline

Set element to pointer provided and return old element.

Definition at line 66 of file PtrListDictionary.C.

◆ set() [2/3]

Foam::autoPtr< T > set ( const label  i,
const word key,
autoPtr< T > &  aptr 
)
inline

Set element to autoPtr value provided and return old element.

Definition at line 84 of file PtrListDictionary.C.

◆ set() [3/3]

Foam::autoPtr< T > set ( const label  i,
const word key,
tmp< T > &  t 
)
inline

Set element to tmp value provided and return old element.

Definition at line 103 of file PtrListDictionary.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, insert(), tmp< T >::ptr(), triad::set(), and T.

Here is the call graph for this function:

◆ operator[]() [1/2]

const T & operator[] ( const word key) const
inline

Find and return entry.

Definition at line 94 of file PtrListDictionary.H.

References DictionaryBase< PtrList< T >, T >::operator, and T.

◆ operator[]() [2/2]

T & operator[] ( const word key)
inline

Find and return entry.

Definition at line 100 of file PtrListDictionary.H.

References DictionaryBase< PtrList< T >, T >::operator, and T.


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