22 #ifndef REGISTRATION_H_
23 #define REGISTRATION_H_
42 static const std::string
TAG;
155 dtn::data::MetaBundle
receiveMetaBundle() throw (dtn::storage::NoBundleFoundException);
161 void delivered(const dtn::data::MetaBundle &m) const;
208 bool isPersistent() const;
243 class RegistrationQueue : public dtn::storage::BundleResult {
253 virtual ~RegistrationQueue();
272 void expire(const dtn::data::
Timestamp ×tamp) throw ();
277 void abort() throw ();
282 void reset() throw ();
287 bool has(const dtn::data::BundleID &bundle) const throw ();
291 ibrcommon::Mutex _lock;
294 dtn::data::BundleSet _recv_bundles;
297 ibrcommon::Queue<dtn::data::MetaBundle> _queue;
300 const std::
string _handle;
301 const dtn::data::EID _default_eid;
303 ibrcommon::Mutex _endpoints_lock;
304 std::set<dtn::data::EID> _endpoints;
305 RegistrationQueue _queue;
307 ibrcommon::Mutex _receive_lock;
308 ibrcommon::Conditional _wait_for_cond;
309 bool _no_more_bundles;
313 static const std::
string alloc_handle();
314 static
void free_handle(const std::
string &handle);
316 static std::set<std::
string> _handles;
320 ibrcommon::Mutex _attach_lock;
321 ibrcommon::Timer::time_t _expiry;
323 bool _filter_fragments;