void Parser::serializeToString() { std::string nb = ""; nb = this->_rawString.substr(0, this->_rawString.find("\t")); std::istringstream buff1(nb); buff1 >> this->mob->id; nb.clear(); this->_rawString.erase(0, this->_rawString.find("\t") + 1); nb = this->_rawString.substr(0, this->_rawString.find("\t")); std::istringstream buff2(nb); buff2 >> this->mob->x; nb.clear(); this->_rawString.erase(0, this->_rawString.find("\t") + 1); nb = this->_rawString.substr(0, this->_rawString.find("\t")); std::istringstream buff3(nb); buff3 >> this->mob->y; nb.clear(); this->_rawString.erase(0, this->_rawString.find("\t") + 1); nb = this->_rawString.substr(0, this->_rawString.find("\t")); std::istringstream buff4(nb); buff4 >> this->mob->path; nb.clear(); this->_rawString.erase(0, this->_rawString.find("\t") + 1); this->_rawString.clear(); }
void test1Gaps() { geryon::server::GUniformMemoryPool pool(BUF_SZ, 1, 0); std::vector<geryon::server::GBufferHandler> buffers; buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(0).get().buffer()[0] = 'a'; //0 buffers.at(0).get().buffer()[1] = 'X'; //1 buffers.at(0).get().buffer()[2] = 'a'; //2 buffers.at(0).get().setMarker(3); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(1).get().buffer()[0] = 'b'; //3 buffers.at(1).get().buffer()[1] = 'b'; //4 buffers.at(1).get().buffer()[2] = 'X'; //5 buffers.at(1).get().buffer()[3] = 'X'; //6 buffers.at(1).get().buffer()[4] = 'b'; //7 buffers.at(1).get().setMarker(5); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(2).get().buffer()[0] = 'c'; //8 buffers.at(2).get().buffer()[1] = 'c'; //9 buffers.at(2).get().buffer()[2] = 'c'; //10 buffers.at(2).get().buffer()[3] = 'X'; //11 buffers.at(2).get().setMarker(4); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(3).get().buffer()[0] = 'X'; //12 buffers.at(3).get().buffer()[1] = 'd'; //13 buffers.at(3).get().buffer()[2] = 'd'; //14 buffers.at(3).get().buffer()[3] = 'X'; //15 buffers.at(3).get().setMarker(4); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(4).get().buffer()[0] = 'X'; //16 buffers.at(4).get().buffer()[1] = 'e'; //17 buffers.at(4).get().buffer()[2] = 'e'; //18 buffers.at(4).get().buffer()[3] = 'X'; //19 buffers.at(4).get().setMarker(4); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(5).get().buffer()[0] = 'X'; //19 buffers.at(5).get().setMarker(1); //1st test : abb geryon::server::GIstreambuff buff1(buffers); buff1.addGap(1, 2); buff1.setup(1, 5); std::istream iss1(&buff1); std::string s; iss1 >> s; //our stream if("abb" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed test1Gaps (1)"; } std::cout << "String 1 is >>" << s << "<<" << std::endl; //2nd test: all abbbcccddee geryon::server::GIstreambuff buff2(buffers); buff2.addGap(1, 2); buff2.addGap(5, 7); buff2.addGap(11, 13); buff2.addGap(15, 17); buff2.addGap(19, 20); buff2.setup(1, 20); std::istream iss2(&buff2); iss2 >> s; //our stream if("abbbcccddee" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed test1Gaps (2)"; } std::cout << "String 2 is >>" << s << "<<" << std::endl; //3rd test: reset the stream buff2.setup(2,4); std::istream iss2_1(&buff2); //our stream iss2_1 >> s; if("ab" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed test1Gaps (3.1)"; } std::cout << "String 3.1 is >>" << s << "<<" << std::endl; buff2.addGap(11, 13); buff2.addGap(15, 17); buff2.setup(11,18); iss2.rdbuf(&buff2); iss2 >> s; if("dde" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed test1Gaps (3.2)"; } std::cout << "String 3.2 is >>" << s << "<<" << std::endl; //4th test: empty (EOF) geryon::server::GIstreambuff buff3(buffers); buff3.addGap(11, 13); buff2.setup(11,13); std::istream iss3(&buff3); if(iss3 >> s) { //yeap, this should return false LOG(geryon::util::Log::ERROR) << "ERROR: Failed test1Gaps (4)"; } std::cout << "String 4 is >>" << s << "<<" << std::endl; //unchanged }
void test1() { geryon::server::GUniformMemoryPool pool(BUF_SZ, 1, 0); std::vector<geryon::server::GBufferHandler> buffers; buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(0).get().buffer()[0] = 'a'; //0 buffers.at(0).get().buffer()[1] = 'a'; //1 buffers.at(0).get().setMarker(2); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(1).get().buffer()[0] = 'b'; //2 buffers.at(1).get().buffer()[1] = 'b'; //3 buffers.at(1).get().buffer()[2] = 'b'; //4 buffers.at(1).get().setMarker(3); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(2).get().buffer()[0] = 'c'; //5 buffers.at(2).get().buffer()[1] = 'c'; //6 buffers.at(2).get().buffer()[2] = 'c'; //7 buffers.at(2).get().buffer()[3] = 'c'; //8 buffers.at(2).get().setMarker(4); buffers.push_back(std::move(geryon::server::GBufferHandler(&pool))); buffers.at(3).get().buffer()[0] = 'd'; //9 buffers.at(3).get().setMarker(1); //1st test : abbbc geryon::server::GIstreambuff buff1(buffers, 1, 6); std::istream iss1(&buff1); std::string s; iss1 >> s; //our stream if("abbbc" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed (1)"; } std::cout << "String 1 is >>" << s << "<<" << std::endl; //2nd test: all aabbbccccd geryon::server::GIstreambuff buff2(buffers, 0, 10); std::istream iss2(&buff2); iss2 >> s; //our stream if("aabbbccccd" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed (2)"; } std::cout << "String 2 is >>" << s << "<<" << std::endl; //3rd test: reset the stream buff2.setup(1,9); std::istream iss2_1(&buff2); //our stream iss2_1 >> s; if("abbbcccc" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed (3.1)"; } std::cout << "String 3.1 is >>" << s << "<<" << std::endl; buff2.setup(2,8); iss2.rdbuf(&buff2); iss2 >> s; if("bbbccc" != s) { LOG(geryon::util::Log::ERROR) << "ERROR: Failed (3.2)"; } std::cout << "String 3.2 is >>" << s << "<<" << std::endl; //4th test: empty (EOF) geryon::server::GIstreambuff buff3(buffers, 0, 0); std::istream iss3(&buff3); if(iss3 >> s) { //yeap, this should return false LOG(geryon::util::Log::ERROR) << "ERROR: Failed (4)"; } std::cout << "String 4 is >>" << s << "<<" << std::endl; //unchanged }