Lines Matching refs:buffer

1691 inline void inner_concat(std::string& buffer, T t) {
1692 buffer.append(t);
1699 inline void inner_concat(std::string& buffer, T t, Args... args) {
1700 buffer.append(t);
1701 return inner_concat(buffer, args...);
4845 std::string buffer{};
4851 * @return true if the buffer is ready to receive the path.
4872 * the string_view input is pointing in the buffer. When in_place is false,
4873 * we must nearly always update the buffer.
4934 * buffer, does not change type.
5785 buffer.erase(components.protocol_end,
5792 buffer.insert(components.protocol_end, "//");
5805 buffer.insert(components.protocol_end + diff, username);
5807 buffer.insert(components.protocol_end + diff, ":");
5809 buffer.insert(components.protocol_end + diff + 1, password);
5813 buffer.insert(components.protocol_end + diff, input);
5821 if (buffer.size() > base.host_start && buffer[base.host_start] != '@') {
5822 buffer.insert(components.host_start, "@");
5837 input.size(), " bytes], buffer is '", buffer, "' [", buffer.size(),
5840 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
5842 buffer.resize(components.hash_start);
5844 components.hash_start = uint32_t(buffer.size());
5845 buffer += "#";
5847 input, ada::character_sets::FRAGMENT_PERCENT_ENCODE, buffer);
5848 // When encoding_required is false, then buffer is left unchanged, and percent
5851 buffer.append(input);
5853 ada_log("url_aggregator::update_unencoded_base_hash final buffer is '",
5854 buffer, "' [", buffer.size(), " bytes]");
5865 buffer.insert(start, input);
5867 buffer.replace(start, input_size, input);
5869 buffer.erase(start, current_length - input_size);
5870 buffer.replace(start, input_size, input);
5872 buffer.replace(start, current_length, input.substr(0, current_length));
5873 buffer.insert(start + current_length, input.substr(current_length));
5881 " bytes], buffer is '", buffer, "' [", buffer.size(), " bytes]");
5883 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
5893 buffer.insert(components.host_start, "@");
5910 uint32_t ending_index = uint32_t(buffer.size());
5921 return buffer.size() == components.pathname_start;
5927 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
5939 components.search_start = uint32_t(buffer.size());
5940 buffer += "?";
5942 buffer.resize(components.search_start + 1);
5945 buffer.append(input);
5950 buffer.erase(components.search_start,
5955 buffer.insert(components.search_start, "?");
5956 buffer.insert(components.search_start + 1, input);
5968 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
5972 components.search_start = uint32_t(buffer.size());
5973 buffer += "?";
5975 buffer.resize(components.search_start + 1);
5979 unicode::percent_encode<true>(input, query_percent_encode_set, buffer);
5980 // When encoding_required is false, then buffer is left unchanged, and
5983 buffer.append(input);
5989 buffer.erase(components.search_start,
5994 buffer.insert(components.search_start, "?");
5998 buffer.insert(components.search_start + 1, input);
6001 buffer.insert(components.search_start + 1, input, 0, idx);
6007 buffer.insert(components.search_start + idx + 1, encoded);
6019 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6034 buffer.insert(components.pathname_start, "/.");
6056 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6062 uint32_t ending_index = uint32_t(buffer.size());
6068 buffer.insert(ending_index, input);
6089 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6094 bool host_starts_with_at = buffer.size() > components.host_start &&
6095 buffer[components.host_start] == '@';
6103 buffer.insert(components.host_start, "@");
6108 buffer.erase(components.host_start, 1);
6126 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6140 buffer.insert(components.username_end, input);
6144 if (buffer[components.host_start] != '@' &&
6146 buffer.insert(components.host_start, "@");
6175 buffer.erase(components.username_end, diff);
6190 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6212 buffer.erase(components.username_end + 1, current_length);
6215 buffer.insert(components.username_end, ":");
6219 buffer.insert(components.username_end + 1, input);
6225 if (buffer[components.host_start] != '@') {
6226 buffer.insert(components.host_start, "@");
6245 ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
6260 buffer.insert(components.host_start, input);
6263 buffer.insert(components.username_end, ":");
6264 buffer.insert(components.username_end + 1, input);
6271 if (buffer[components.host_start] != '@') {
6272 buffer.insert(components.host_start, "@");
6307 buffer.erase(components.host_end,
6311 buffer.insert(components.host_end, value);
6330 buffer.erase(components.host_end, length);
6355 buffer.resize(components.search_start);
6357 buffer.erase(components.search_start,
6366 "search should have been cleared on buffer=" + buffer +
6378 buffer.resize(components.hash_start);
6383 "hash should have been cleared on buffer=" + buffer +
6392 uint32_t ending_index = uint32_t(buffer.size());
6399 buffer.erase(components.pathname_start, pathname_length);
6402 buffer[components.host_end] == '/' &&
6403 buffer[components.host_end + 1] == '.') {
6405 buffer.erase(components.host_end, 2);
6417 "pathname should have been cleared on buffer=" + buffer +
6436 if (hostname_length > 0 && buffer[start] == '@') {
6440 buffer.erase(start, hostname_length);
6451 "hostname should have been cleared on buffer=" + buffer +
6456 "hostname should have been cleared on buffer=" + buffer +
6492 helpers::substring(buffer, components.protocol_end,
6501 // `//` initially to the buffer, since it depends on the hostname existence.
6505 // Performance: the common case is components.protocol_end == buffer.size()
6508 buffer.insert(components.protocol_end, "//");
6523 buffer.reserve(capacity);
6540 buffer[components.username_end] == ':';
6577 ADA_ASSERT_TRUE((buffer[components.host_end] == '/' &&
6578 buffer[components.host_end + 1] == '.') ||
6579 (buffer[components.host_end] == ':' &&
6580 checkers::is_digit(buffer[components.host_end + 1])));
6583 buffer[components.host_end] == '/' &&
6584 buffer[components.host_end + 1] == '.') {
6585 ADA_ASSERT_TRUE(components.pathname_start + 1 < buffer.size());
6586 ADA_ASSERT_TRUE(buffer[components.pathname_start] == '/');
6587 ADA_ASSERT_TRUE(buffer[components.pathname_start + 1] == '/');
6595 !has_opaque_path && buffer[components.host_end] == '/' &&
6596 buffer[components.host_end + 1] == '.';
6602 return buffer;
6647 if (buffer.empty()) {
6648 buffer.append("file:");
6650 buffer.erase(0, components.protocol_end);
6651 buffer.insert(0, "file:");