File: keymapcleanup.cc

package info (click to toggle)
natlog 3.01.00-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,912 kB
  • sloc: cpp: 3,691; fortran: 201; sh: 133; ansic: 123; makefile: 110
file content (21 lines) | stat: -rw-r--r-- 753 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "ipbase.ih"

void IPbase::keyMapCleanup(KeyMap &keyMap)
{
    vector<size_t> remove;

        // see ipbase.h for details at KeyMapStruct
    for (auto &value: keyMap)
    {
        if (find(value.second.key) == end())    // key doesn't point to an
        {                                       //  existing Record
            if (value.second.expired)           // Expired, so 
                remove.push_back(value.first);  //  remove the keyMap's entry
            else                                // otherwise
                value.second.expired = true;    //  remove it at the next 
        }                                       // cleanup (or at FIN)
    }

    for (size_t key: remove)
        keyMap.erase(keyMap.find(key));
}