Doxygen
Loading...
Searching...
No Matches
MemberNameLinkedMap Class Referencefinal

Ordered dictionary of MemberName objects. More...

#include <src/membername.h>

Inheritance diagram for MemberNameLinkedMap:
Collaboration diagram for MemberNameLinkedMap:

Public Member Functions

MemberName::Ptr take (const DString &key, const MemberDef *value)
Public Member Functions inherited from LinkedMap< MemberName >
const MemberNamefind (const std::string &key) const
MemberNameadd (const char *k, Args &&... args)
MemberNameprepend (const char *k, Args &&... args)
bool del (const DString &key)
Ptroperator[] (size_t pos)
iterator begin ()
iterator end ()
reverse_iterator rbegin ()
reverse_iterator rend ()
bool empty () const
size_t size () const
void clear ()

Additional Inherited Members

Public Types inherited from LinkedMap< MemberName >
using Ptr
using Vec
using iterator
using const_iterator
using reverse_iterator
using const_reverse_iterator

Detailed Description

Ordered dictionary of MemberName objects.

Definition at line 60 of file membername.h.

Member Function Documentation

◆ take()

MemberName::Ptr MemberNameLinkedMap::take ( const DString & key,
const MemberDef * value )
inline

Definition at line 63 of file membername.h.

64 {
65 MemberName::Ptr result;
66 MemberName *mn = find(key);
67 if (mn)
68 {
69 auto it = std::find_if(mn->begin(),mn->end(),[&value](const auto &el) { return el.get()==value; });
70 if (it != mn->end())
71 {
72 it->swap(result);
73 mn->erase(it);
74 }
75 if (mn->empty())
76 {
77 del(key);
78 }
79 }
80 return result;
81 }
bool del(const DString &key)
Definition linkedmap.h:183
const MemberName * find(const std::string &key) const
Definition linkedmap.h:47
iterator erase(iterator it)
Definition membername.h:51
std::unique_ptr< MemberDef > Ptr
Definition membername.h:25
bool empty() const
Definition membername.h:45
iterator begin()
Definition membername.h:35
iterator end()
Definition membername.h:36

References MemberName::begin(), LinkedMap< MemberName >::del(), MemberName::empty(), MemberName::end(), MemberName::erase(), and LinkedMap< MemberName >::find().

Referenced by findMember().


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