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)
80 if (_filter.contains(
id.toString()))
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++);
154 _transit_bundles.insert(
id);
175 _transit_bundles.erase(
id);
182 pair<data_set::iterator, bool> ret = _datasets.insert( dset );
185 _datasets.erase(ret.first);
186 _datasets.insert( dset );
197 std::set<dtn::data::EID> ret;
199 for (neighbor_map::const_iterator iter = _entries.begin(); iter != _entries.end(); ++iter)
201 delete (*iter).second;
207 neighbor_map::iterator iter = _entries.find(eid);
208 if (iter == _entries.end())
211 pair<neighbor_map::iterator,bool> itm = _entries.insert( pair<dtn::data::EID, NeighborDatabase::NeighborEntry*>(eid, entry) );
216 (*(*iter).second).touch();
218 return *(*iter).second;
226 neighbor_map::iterator iter = _entries.find(eid);
227 if (iter == _entries.end())
233 (*(*iter).second).touch();
235 return *(*iter).second;
240 neighbor_map::iterator iter = _entries.find(eid);
241 if (iter == _entries.end())
243 delete (*iter).second;
244 _entries.erase(iter);