Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef DICTIONARY_H_
00011 #define DICTIONARY_H_
00012
00013 #include "ibrdtn/data/EID.h"
00014 #include <list>
00015 #include <sstream>
00016 #include <list>
00017
00018 using namespace std;
00019
00020 namespace dtn
00021 {
00022 namespace data
00023 {
00024 class Bundle;
00025
00026 class Dictionary
00027 {
00028 public:
00032 Dictionary();
00033
00037 Dictionary(const dtn::data::Bundle &bundle);
00038
00042 Dictionary(const Dictionary &d);
00043
00047 Dictionary& operator=(const Dictionary &d);
00048
00052 virtual ~Dictionary();
00053
00057 void add(const EID &eid);
00058
00062 void add(const list<EID> &eids);
00063
00067 EID get(size_t scheme, size_t ssp);
00068
00072 void clear();
00073
00077 size_t getSize() const;
00078
00082 pair<size_t, size_t> getRef(const EID &eid) const;
00083
00084 friend std::ostream &operator<<(std::ostream &stream, const dtn::data::Dictionary &obj);
00085 friend std::istream &operator>>(std::istream &stream, dtn::data::Dictionary &obj);
00086
00087 private:
00088 bool exists(const std::string) const;
00089 void add(const std::string);
00090 size_t get(const std::string) const;
00091
00092 stringstream _bytestream;
00093 };
00094 }
00095 }
00096
00097 #endif