33 : eid(), _filter(), _filter_expire(0), _filter_state(FILTER_EXPIRED, FILTER_FINAL)
37 : eid(e), _filter(), _filter_expire(0), _filter_state(FILTER_EXPIRED, FILTER_FINAL)
51 _filter_expire = std::numeric_limits<dtn::data::Size>::max();
78 if (_filter_state == FILTER_AVAILABLE)
83 else if (require_bloomfilter)
88 return _summary.has(
id);
94 return (_last_update + 900) < timestamp;
112 if ((_filter_expire > 0) && (_filter_expire < timestamp))
120 _filter_expire = timestamp + 60;
124 _summary.expire(timestamp);
129 for (neighbor_map::iterator iter = _entries.begin(); iter != _entries.end(); )
134 delete (*iter).second;
135 _entries.erase(iter++);
152 _transit_bundles.insert(
id);
172 _transit_bundles.erase(
id);
179 pair<data_set::iterator, bool> ret = _datasets.insert( dset );
182 _datasets.erase(ret.first);
183 _datasets.insert( dset );
194 std::set<dtn::data::EID> ret;
196 for (neighbor_map::const_iterator iter = _entries.begin(); iter != _entries.end(); ++iter)
198 delete (*iter).second;
204 neighbor_map::iterator iter = _entries.find(eid);
205 if (iter == _entries.end())
208 pair<neighbor_map::iterator,bool> itm = _entries.insert( pair<dtn::data::EID, NeighborDatabase::NeighborEntry*>(eid, entry) );
213 (*(*iter).second).touch();
215 return *(*iter).second;
223 neighbor_map::iterator iter = _entries.find(eid);
224 if (iter == _entries.end())
230 (*(*iter).second).touch();
232 return *(*iter).second;
237 neighbor_map::iterator iter = _entries.find(eid);
238 if (iter == _entries.end())
240 delete (*iter).second;
241 _entries.erase(iter);