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