38 AbstractWorker::AbstractWorkerAsync::AbstractWorkerAsync(
AbstractWorker &worker)
44 AbstractWorker::AbstractWorkerAsync::~AbstractWorkerAsync()
50 void AbstractWorker::AbstractWorkerAsync::raiseEvent(
const dtn::core::Event *evt)
throw ()
61 _receive_bundles.push(queued.
bundle);
71 _receive_bundles.push(queued.
bundle);
74 }
catch (
const std::bad_cast&) { }
77 void AbstractWorker::AbstractWorkerAsync::initialize()
80 if (JoinableThread::isFinalized())
82 JoinableThread::reset();
84 _receive_bundles.reset();
87 JoinableThread::start();
90 void AbstractWorker::AbstractWorkerAsync::shutdown()
93 _receive_bundles.abort();
98 void AbstractWorker::AbstractWorkerAsync::run()
throw ()
110 _worker.callbackBundleReceived( b );
134 void AbstractWorker::AbstractWorkerAsync::__cancellation()
throw ()
137 _receive_bundles.abort();
140 void AbstractWorker::AbstractWorkerAsync::prepareBundle(
dtn::data::Bundle &bundle)
const
152 _groups.insert(endpoint);
157 _groups.erase(endpoint);
165 _thread.initialize();