xref: /aosp_15_r20/external/cronet/url/url_canon_stdstring.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "url/url_canon_stdstring.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker namespace url {
8*6777b538SAndroid Build Coastguard Worker 
StdStringCanonOutput(std::string * str)9*6777b538SAndroid Build Coastguard Worker StdStringCanonOutput::StdStringCanonOutput(std::string* str) : str_(str) {
10*6777b538SAndroid Build Coastguard Worker   cur_len_ = str_->size();  // Append to existing data.
11*6777b538SAndroid Build Coastguard Worker   buffer_ = str_->empty() ? nullptr : &(*str_)[0];
12*6777b538SAndroid Build Coastguard Worker   buffer_len_ = str_->size();
13*6777b538SAndroid Build Coastguard Worker }
14*6777b538SAndroid Build Coastguard Worker 
~StdStringCanonOutput()15*6777b538SAndroid Build Coastguard Worker StdStringCanonOutput::~StdStringCanonOutput() {
16*6777b538SAndroid Build Coastguard Worker   // Nothing to do, we don't own the string.
17*6777b538SAndroid Build Coastguard Worker }
18*6777b538SAndroid Build Coastguard Worker 
Complete()19*6777b538SAndroid Build Coastguard Worker void StdStringCanonOutput::Complete() {
20*6777b538SAndroid Build Coastguard Worker   str_->resize(cur_len_);
21*6777b538SAndroid Build Coastguard Worker   buffer_len_ = cur_len_;
22*6777b538SAndroid Build Coastguard Worker }
23*6777b538SAndroid Build Coastguard Worker 
Resize(size_t sz)24*6777b538SAndroid Build Coastguard Worker void StdStringCanonOutput::Resize(size_t sz) {
25*6777b538SAndroid Build Coastguard Worker   str_->resize(sz);
26*6777b538SAndroid Build Coastguard Worker   buffer_ = str_->empty() ? nullptr : &(*str_)[0];
27*6777b538SAndroid Build Coastguard Worker   buffer_len_ = sz;
28*6777b538SAndroid Build Coastguard Worker }
29*6777b538SAndroid Build Coastguard Worker 
30*6777b538SAndroid Build Coastguard Worker }  // namespace url
31