23 #include "ibrcommon/data/BLOB.h"
37 std::string::size_type endpos = str.find_last_not_of(
" \t");
38 if( string::npos != endpos )
40 str = str.substr( 0, endpos+1 );
47 std::string::size_type startpos = str.find_first_not_of(
" \t");
48 if( string::npos != startpos )
50 str = str.substr( startpos );
60 std::vector<std::string>
Utils::tokenize(
const std::string &token,
const std::string &data,
const std::string::size_type max)
62 std::vector<std::string> l;
66 std::string::size_type pos = data.find_first_not_of(token, 0);
68 std::string::size_type tokenPos = 0;
70 while (pos != string::npos)
75 tokenPos = std::string::npos;
80 tokenPos = data.find_first_of(token, pos);
83 if (tokenPos == std::string::npos) {
85 value = data.substr(pos);
92 value = data.substr(pos, tokenPos - pos);
96 pos = data.find_first_not_of(token, tokenPos);
107 const double r = 6371;
109 double dLat = toRad( (lat2-lat1) );
110 double dLon = toRad( (lon2-lon1) );
112 double a = sin(dLat/2) * sin(dLat/2) +
113 cos(toRad(lat1)) * cos(toRad(lat2)) *
114 sin(dLon/2) * sin(dLon/2);
115 double c = 2 * atan2(sqrt(a), sqrt(1-a));
119 const double Utils::pi = 3.14159;
121 double Utils::toRad(
double value)
123 return value * pi / 180;
128 bool custody =
false;
135 ibrcommon::BLOB::Reference ref = payload.
getBLOB();
138 ref.iostream().clear();
143 ibrcommon::BLOB::Reference ref = ibrcommon::BLOB::create();
153 for (std::list<dtn::data::Bundle>::const_iterator iter = bundles.begin(); iter != bundles.end(); ++iter)
161 if (expt > exp_time) exp_time = expt;
174 void Utils::encapsule(ibrcommon::BLOB::Reference &ref,
const std::list<dtn::data::Bundle> &bundles)
176 ibrcommon::BLOB::iostream stream = ref.iostream();
180 (*stream) << elements;
186 std::list<dtn::data::Bundle>::const_iterator iter = bundles.begin();
188 for (
size_t i = 0; i < (bundles.size() - 1); i++, iter++)
195 for (std::list<dtn::data::Bundle>::const_iterator iter = bundles.begin(); iter != bundles.end(); ++iter)
197 serializer << (*iter);
205 ibrcommon::BLOB::iostream stream = payload.
getBLOB().iostream();
211 for (
size_t i = 0; (nob - 1) > i; ++i)
222 for (
size_t i = 0; nob > i; ++i)
237 std::stringstream ss;
static void rtrim(std::string &str)
dtn::data::Timestamp timestamp
static dtn::data::Timestamp getExpireTime(const dtn::data::Bundle &b)
bool get(FLAGS flag) const
static double distance(double lat1, double lon1, double lat2, double lon2)
static void decapsule(const dtn::data::Bundle &capsule, std::list< dtn::data::Bundle > &bundles)
static void trim(std::string &str)
static void ltrim(std::string &str)
iterator find(block_t blocktype)
ibrcommon::BLOB::Reference getBLOB() const
dtn::data::SDNV< Size > Number
static void encapsule(dtn::data::Bundle &capsule, const std::list< dtn::data::Bundle > &bundles)
static std::vector< std::string > tokenize(const std::string &token, const std::string &data, const std::string::size_type max=std::string::npos)
static std::string toString(const dtn::data::Length &value)
void set(FLAGS flag, bool value)