void streamtools_object::test<6>() { char arr[255]; std::string str; std::string expected_result; std::string actual_result; std::istringstream is; bool ret; is.clear(); is.str(str = "FIRSTKEY followed by second delimiter\nSECONDKEY\t SecondValue followed by third delimiter \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld."); ret = skip_to_end_of_next_keyword("FIRSTKEY", is); is.get(arr, 255, '\0'); expected_result = " followed by second delimiter\nSECONDKEY\t SecondValue followed by third delimiter \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld."; ensure_equals("skip_to_end_of_next_keyword: 1", arr, expected_result); is.clear(); is.str(expected_result); ret = skip_to_end_of_next_keyword("SECONDKEY", is); is.get(arr, 255, '\0'); expected_result = "\t SecondValue followed by third delimiter \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld."; ensure_equals("skip_to_end_of_next_keyword: 2", arr, expected_result); is.clear(); is.str(expected_result); ret = skip_to_end_of_next_keyword("SECONDKEY", is); is.get(arr, 255, '\0'); expected_result = "\nFOURTHKEY FOURTHVALUEis a 3DWorld."; ensure_equals("skip_to_end_of_next_keyword: 3", arr, expected_result); is.clear(); is.str(expected_result); ret = skip_to_end_of_next_keyword("FOURTHKEY", is); is.get(arr, 255, '\0'); expected_result = " FOURTHVALUEis a 3DWorld."; ensure_equals("skip_to_end_of_next_keyword: 4", arr, expected_result); is.clear(); is.str(str = "{should be skipped as newline/space/tab does not follow but this one should be picked\n { Does it?\n"); ret = skip_to_end_of_next_keyword("{", is); is.get(arr, 255, '\0'); expected_result = " Does it?\n"; ensure_equals("skip_to_end_of_next_keyword: multiple delim matches on same line", arr, expected_result); is.clear(); is.str(str = "Delim { could not be found at start"); ret = skip_to_end_of_next_keyword("{", is); ensure("skip_to_end_of_next_keyword: delim should not be present", ret == false); is.clear(); is.str(str = "Empty Delim"); ret = skip_to_end_of_next_keyword("", is); ensure("skip_to_end_of_next_keyword: empty delim should not be valid", ret == false); is.clear(); is.str(str = ""); ret = skip_to_end_of_next_keyword("}", is); ensure("skip_to_end_of_next_keyword: empty string", ret == false); }
BOOL LLParcel::importMediaURLFilter(std::istream& input_stream, std::string& url) { skip_to_end_of_next_keyword("{", input_stream); while(input_stream.good()) { skip_comments_and_emptyspace(input_stream); std::string line, keyword, value; get_line(line, input_stream, MAX_STRING); get_keyword_and_value(keyword, value, line); if ("}" == keyword) { break; } else if ("url" == keyword) { url = value; } else { llwarns << "Unknown keyword in parcel media url filter section: <" << keyword << ">" << llendl; } } return input_stream.good(); }
BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entry) { skip_to_end_of_next_keyword("{", input_stream); while (input_stream.good()) { skip_comments_and_emptyspace(input_stream); std::string line, keyword, value; get_line(line, input_stream, MAX_STRING); get_keyword_and_value(keyword, value, line); if ("}" == keyword) { break; } else if ("id" == keyword) { entry->mID.set( value ); } else if ("name" == keyword) { // deprecated } else if ("time" == keyword) { S32 when = -1; LLStringUtil::convertToS32(value, when); entry->mTime = when; } else if ("flags" == keyword) { U32 setting = 0xFFFFFFFF; LLStringUtil::convertToU32(value, setting); entry->mFlags = setting; } else { LL_WARNS() << "Unknown keyword in parcel access entry section: <" << keyword << ">" << LL_ENDL; } } return input_stream.good(); }