IBR-DTNSuite  0.8
ibrdtn/ibrdtn/data/Block.cpp
Go to the documentation of this file.
00001 /*
00002  * Block.cpp
00003  *
00004  *  Created on: 04.06.2009
00005  *      Author: morgenro
00006  */
00007 
00008 #include "ibrdtn/data/Block.h"
00009 #include "ibrdtn/data/Bundle.h"
00010 #include <iostream>
00011 
00012 using namespace std;
00013 
00014 namespace dtn
00015 {
00016         namespace data
00017         {
00018                 Block::Block(char blocktype)
00019                  : _blocktype(blocktype), _procflags(0)
00020                 {
00021                 }
00022 
00023                 Block::~Block()
00024                 {
00025                 }
00026 
00027                 void Block::addEID(const EID &eid)
00028                 {
00029                         _eids.push_back(eid);
00030 
00031                         // add proc flag if not set
00032                         _procflags |= Block::BLOCK_CONTAINS_EIDS;
00033                 }
00034 
00035                 std::list<dtn::data::EID> Block::getEIDList() const
00036                 {
00037                         return _eids;
00038                 }
00039 
00040                 void Block::set(ProcFlags flag, const bool &value)
00041                 {
00042                         if (value)
00043                         {
00044                                 _procflags |= flag;
00045                         }
00046                         else
00047                         {
00048                                 _procflags &= ~(flag);
00049                         }
00050                 }
00051 
00052                 bool Block::get(ProcFlags flag) const
00053                 {
00054                         return (_procflags & flag);
00055                 }
00056 
00057                 size_t Block::getLength_strict() const
00058                 {
00059                         return getLength();
00060                 }
00061 
00062                 std::ostream& Block::serialize_strict(std::ostream &stream, size_t &length) const
00063                 {
00064                         return serialize(stream, length);
00065                 }
00066         }
00067 }