22 #ifndef BUNDLESTORAGE_H_
23 #define BUNDLESTORAGE_H_
33 #include <ibrcommon/data/BloomFilter.h>
34 #include <ibrcommon/thread/Mutex.h>
124 virtual bool empty() {
return true; };
199 ibrcommon::Mutex _sizelock;
200 const dtn::data::
Length _maxsize;
201 dtn::data::
Length _currentsize;
203 ibrcommon::Mutex _index_lock;
204 typedef std::set<dtn::storage::
BundleIndex*> index_list;
std::set< dtn::data::EID > eid_set
dtn::data::Length size() const
void attach(dtn::storage::BundleIndex *index)
BundleLoadException(string what="Error while loading bundle data.")
virtual dtn::data::Size count()
const dtn::data::EID acceptCustody(const dtn::data::MetaBundle &meta)
virtual bool contains(const dtn::data::BundleID &id)=0
StorageSizeExeededException(string what="No space left in the storage.")
virtual ~BundleStorage()=0
virtual void store(const dtn::data::Bundle &bundle)=0
void detach(dtn::storage::BundleIndex *index)
void rejectCustody(const dtn::data::MetaBundle &meta, dtn::data::CustodySignalBlock::REASON_CODE reason=dtn::data::CustodySignalBlock::NO_ADDITIONAL_INFORMATION)
void freeSpace(const dtn::data::Length &size)
virtual void releaseCustody(const dtn::data::EID &custodian, const dtn::data::BundleID &id)=0
void allocSpace(const dtn::data::Length &size)
virtual dtn::data::MetaBundle info(const dtn::data::BundleID &id)=0
void eventBundleAdded(const dtn::data::MetaBundle &b)
virtual const eid_set getDistinctDestinations()=0
virtual void setFaulty(bool mode)
void eventBundleRemoved(const dtn::data::BundleID &id)
BundleStorage(const dtn::data::Length &maxsize)