22 #ifndef REGISTRATION_H_
23 #define REGISTRATION_H_
41 static const std::string TAG;
161 dtn::data::MetaBundle
receiveMetaBundle() throw (dtn::storage::NoBundleFoundException);
167 void delivered(const dtn::data::MetaBundle &m) const;
214 bool isPersistent() const;
249 class RegistrationQueue : public dtn::storage::BundleResult {
259 virtual ~RegistrationQueue();
278 void expire(const dtn::data::
Timestamp ×tamp) throw ();
283 void abort() throw ();
288 void reset() throw ();
293 bool has(const dtn::data::BundleID &bundle) const throw ();
297 ibrcommon::Mutex _lock;
300 dtn::data::BundleSet _recv_bundles;
303 ibrcommon::Queue<dtn::data::MetaBundle> _queue;
306 const std::
string _handle;
307 dtn::data::EID _default_eid;
309 ibrcommon::Mutex _endpoints_lock;
310 std::set<dtn::data::EID> _endpoints;
311 RegistrationQueue _queue;
313 ibrcommon::Mutex _receive_lock;
314 ibrcommon::Conditional _wait_for_cond;
315 bool _no_more_bundles;
319 static const std::
string gen_handle();
320 static const std::
string& alloc_handle();
321 static const std::
string& alloc_handle(const std::
string &handle);
322 static
void free_handle(const std::
string &handle);
324 static ibrcommon::Mutex _handle_lock;
325 static std::set<std::
string> _handles;
329 ibrcommon::Mutex _attach_lock;
330 ibrcommon::Timer::time_t _expiry;
332 bool _filter_fragments;