00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _PROPHET_BUNDLE_IMPL_H_
00018 #define _PROPHET_BUNDLE_IMPL_H_
00019
00020 #include "Bundle.h"
00021 #include <string>
00022
00023 namespace prophet
00024 {
00025
00031 class BundleImpl : public Bundle
00032 {
00033 public:
00037 BundleImpl()
00038 : Bundle(),
00039 dest_id_(""),
00040 src_id_(""),
00041 cts_(0),
00042 seq_(0),
00043 ets_(0),
00044 size_(0),
00045 num_fwd_(0),
00046 custody_requested_(false)
00047 {}
00048
00052 BundleImpl(const std::string& destination_id,
00053 u_int32_t creation_ts = 0,
00054 u_int32_t sequence_num = 0,
00055 u_int32_t expiration_ts = 0,
00056 u_int size = 0,
00057 u_int num_forward = 0,
00058 bool custody_requested = false)
00059 : Bundle(),
00060 dest_id_(destination_id),
00061 src_id_(""),
00062 cts_(creation_ts),
00063 seq_(sequence_num),
00064 ets_(expiration_ts),
00065 size_(size),
00066 num_fwd_(num_forward),
00067 custody_requested_(custody_requested)
00068 {}
00069
00073 BundleImpl(const std::string& source_id,
00074 const std::string& destination_id,
00075 u_int32_t creation_ts = 0,
00076 u_int32_t sequence_num = 0,
00077 u_int32_t expiration_ts = 0,
00078 u_int size = 0,
00079 u_int num_forward = 0,
00080 bool custody_requested = false)
00081 : Bundle(),
00082 dest_id_(destination_id),
00083 src_id_(source_id),
00084 cts_(creation_ts),
00085 seq_(sequence_num),
00086 ets_(expiration_ts),
00087 size_(size),
00088 num_fwd_(num_forward),
00089 custody_requested_(custody_requested)
00090 {}
00091
00095 BundleImpl(const BundleImpl& b)
00096 : Bundle(b),
00097 dest_id_(b.dest_id_),
00098 src_id_(b.src_id_), cts_(b.cts_),
00099 seq_(b.seq_), ets_(b.ets_),
00100 size_(b.size_), num_fwd_(b.num_fwd_),
00101 custody_requested_(b.custody_requested_)
00102 {}
00103
00107 virtual ~BundleImpl() {}
00108
00110 virtual const std::string& destination_id() const { return dest_id_; }
00111 virtual const std::string& source_id() const { return src_id_; }
00112 virtual u_int32_t creation_ts() const { return cts_; }
00113 virtual u_int32_t sequence_num() const { return seq_; }
00114 virtual u_int32_t expiration_ts() const { return ets_; }
00115 virtual u_int size() const { return size_; }
00116 virtual u_int num_forward() const { return num_fwd_; }
00117 virtual bool custody_requested() const { return custody_requested_; }
00119
00121 virtual void set_destination_id( const std::string& id ) { dest_id_.assign(id); }
00122 virtual void set_source_id( const std::string& id ) { src_id_.assign(id); }
00123 virtual void set_creation_ts( u_int32_t cts ) { cts_ = cts; }
00124 virtual void set_sequence_num( u_int32_t seq ) { seq_ = seq; }
00125 virtual void set_expiration_ts( u_int32_t ets ) { ets_ = ets; }
00126 virtual void set_size( u_int sz ) { size_ = sz; }
00127 virtual void set_num_forward( u_int nf ) { num_fwd_ = nf; }
00128 virtual void set_custody_requested( bool c ) { custody_requested_ = c; }
00130
00132 virtual BundleImpl& operator= (const BundleImpl& b)
00133 {
00134 dest_id_.assign(b.dest_id_);
00135 src_id_.assign(b.src_id_);
00136 cts_ = b.cts_;
00137 seq_ = b.seq_;
00138 ets_ = b.ets_;
00139 size_ = b.size_;
00140 num_fwd_ = b.num_fwd_;
00141 return *this;
00142 }
00144
00145 protected:
00146 std::string dest_id_;
00147 std::string src_id_;
00148 u_int32_t cts_;
00149 u_int32_t seq_;
00150 u_int32_t ets_;
00151 u_int size_;
00152 u_int num_fwd_;
00153 bool custody_requested_;
00154 };
00155
00156 };
00157
00158 #endif // _PROPHET_BUNDLE_IMPL_H_