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