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 14 typedef struct UConverter UConverter; 15 16 namespace url { 17 18 // An implementation of CharsetConverter that implementations can use to 19 // interface the canonicalizer with ICU's conversion routines. 20 class 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 39 40 #endif // URL_URL_CANON_ICU_H_ 41