url_canon_icu.h revision 3551c9c881056c480085172ff9840cab31610854
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#ifndef URL_URL_CANON_ICU_H_ 6#define URL_URL_CANON_ICU_H_ 7 8// ICU integration functions. 9 10#include "base/compiler_specific.h" 11#include "url/url_canon.h" 12#include "url/url_export.h" 13 14typedef struct UConverter UConverter; 15 16namespace url_canon { 17 18// An implementation of CharsetConverter that implementations can use to 19// interface the canonicalizer with ICU's conversion routines. 20class URL_EXPORT ICUCharsetConverter : public CharsetConverter { 21 public: 22 // Constructs a converter using an already-existing ICU character set 23 // converter. This converter is NOT owned by this object; the lifetime must 24 // be managed by the creator such that it is alive as long as this is. 25 ICUCharsetConverter(UConverter* converter); 26 27 virtual ~ICUCharsetConverter(); 28 29 virtual void ConvertFromUTF16(const base::char16* input, 30 int input_len, 31 CanonOutput* output) OVERRIDE; 32 33 private: 34 // The ICU converter, not owned by this class. 35 UConverter* converter_; 36}; 37 38} // namespace url_canon 39 40#endif // URL_URL_CANON_ICU_H_ 41