Index: third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/normalizedunicodetext.h |
=================================================================== |
--- third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/normalizedunicodetext.h (revision 0) |
+++ third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/normalizedunicodetext.h (revision 0) |
@@ -0,0 +1,67 @@ |
+// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef BAR_TOOLBAR_CLD_I18N_ENCODINGS_COMPACT_LANG_DET_WIN_NORMALIZEDUNICODETEXT_H_ |
+#define BAR_TOOLBAR_CLD_I18N_ENCODINGS_COMPACT_LANG_DET_WIN_NORMALIZEDUNICODETEXT_H_ |
+ |
+#include <tchar.h> |
+#include <windows.h> |
+ |
+#include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/cld_scopedptr.h" |
+ |
+ |
+#if (WINVER < 0x0600) |
+// Copied from winnls.h, we're not using the latest SDK yet. |
+typedef enum _NORM_FORM { |
+ NormalizationOther = 0, |
+ NormalizationC = 0x1, |
+ NormalizationD = 0x2, |
+ NormalizationKC = 0x5, |
+ NormalizationKD = 0x6 |
+} NORM_FORM; |
+#endif |
+ |
+ |
+// Gives you back a normalized version of the input text. Normalization is |
+// performed to the specified form. |
+// Instance lifetime should be within the lifetime span of the 'text'. |
+class NormalizedUnicodeText { |
+ public: |
+ // Creates an empty instance of NormalizedUnicodeText. |
+ NormalizedUnicodeText(); |
+ |
+ // Creates a fully initialized instance of NormalizedUnicodeText. |
+ // [in] normalization_form - normalization rule set (see MSDN for details). |
+ // [in] text - zero-terminated UTF-16 encoded string. |
+ // Returns 0 in case of success, Win32 error code in case of failure. |
+ // In case of failure, get() returns the original text. |
+ DWORD Normalize(NORM_FORM normalization_form, const WCHAR* text); |
+ |
+ // Returns pointer to the normalized text. |
+ const WCHAR* get() const { return normalized_text_; } |
+ |
+ private: |
+ // Normalizes 'text' by the 'normalization_form' rules. |
+ // [in] normalization_form - normalization rule set (see MSDN for details). |
+ // [in] text - zero-terminated UTF-16 encoded string. |
+ // [out] error_code - Win32 error code. |
+ const WCHAR* TryToNormalizeText(NORM_FORM normalization_form, |
+ const WCHAR* text, DWORD *error_code); |
+ |
+ // Pointer to the normalized text. |
+ const WCHAR* normalized_text_; |
+ // When the source text is already normalized by the requested normalization |
+ // form, text_ is not used and normalized_text_ just points to the source |
+ // text. When the source text requres normalization, text_ contains normalized |
+ // version of the source text and normalized_text_ points to this buffer. |
+ // Since CLD requires NormalizationC form and the overwhelming majority of all |
+ // texts in the Internet is already normalized to this form, it's expected |
+ // that this class will not introduce any runtime memory overhead. |
+ scoped_array<WCHAR> text_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(NormalizedUnicodeText); |
+}; |
+ |
+ |
+#endif // BAR_TOOLBAR_CLD_I18N_ENCODINGS_COMPACT_LANG_DET_WIN_NORMALIZEDUNICODETEXT_H_ |
Property changes on: third_party\cld\bar\toolbar\cld\i18n\encodings\compact_lang_det\win\normalizedunicodetext.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |