~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/chromium/src/base/strings/utf_string_conversions.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright (c) 2011 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 BASE_STRINGS_UTF_STRING_CONVERSIONS_H_
6
 
#define BASE_STRINGS_UTF_STRING_CONVERSIONS_H_
7
 
 
8
 
#include <string>
9
 
 
10
 
#include "base/base_export.h"
11
 
#include "base/strings/string16.h"
12
 
#include "base/strings/string_piece.h"
13
 
 
14
 
namespace base {
15
 
 
16
 
// These convert between UTF-8, -16, and -32 strings. They are potentially slow,
17
 
// so avoid unnecessary conversions. The low-level versions return a boolean
18
 
// indicating whether the conversion was 100% valid. In this case, it will still
19
 
// do the best it can and put the result in the output buffer. The versions that
20
 
// return strings ignore this error and just return the best conversion
21
 
// possible.
22
 
BASE_EXPORT bool WideToUTF8(const wchar_t* src, size_t src_len,
23
 
                            std::string* output);
24
 
BASE_EXPORT std::string WideToUTF8(const std::wstring& wide);
25
 
BASE_EXPORT bool UTF8ToWide(const char* src, size_t src_len,
26
 
                            std::wstring* output);
27
 
BASE_EXPORT std::wstring UTF8ToWide(const StringPiece& utf8);
28
 
 
29
 
BASE_EXPORT bool WideToUTF16(const wchar_t* src, size_t src_len,
30
 
                             string16* output);
31
 
BASE_EXPORT string16 WideToUTF16(const std::wstring& wide);
32
 
BASE_EXPORT bool UTF16ToWide(const char16* src, size_t src_len,
33
 
                             std::wstring* output);
34
 
BASE_EXPORT std::wstring UTF16ToWide(const string16& utf16);
35
 
 
36
 
BASE_EXPORT bool UTF8ToUTF16(const char* src, size_t src_len, string16* output);
37
 
BASE_EXPORT string16 UTF8ToUTF16(const StringPiece& utf8);
38
 
BASE_EXPORT bool UTF16ToUTF8(const char16* src, size_t src_len,
39
 
                             std::string* output);
40
 
BASE_EXPORT std::string UTF16ToUTF8(const string16& utf16);
41
 
 
42
 
// These convert an ASCII string, typically a hardcoded constant, to a
43
 
// UTF16/Wide string.
44
 
BASE_EXPORT std::wstring ASCIIToWide(const StringPiece& ascii);
45
 
BASE_EXPORT string16 ASCIIToUTF16(const StringPiece& ascii);
46
 
 
47
 
}  // namespace base
48
 
 
49
 
// We are trying to get rid of wstring as much as possible, but it's too big a
50
 
// mess to do it all at once.  These synonyms should be used when we really
51
 
// should just be passing a string16 around, but we haven't finished porting
52
 
// whatever module uses wstring and the conversion is being used as a stopgap.
53
 
// This makes it easy to grep for the ones that should be removed.
54
 
#define WideToUTF16Hack WideToUTF16
55
 
#define UTF16ToWideHack UTF16ToWide
56
 
 
57
 
#endif  // BASE_STRINGS_UTF_STRING_CONVERSIONS_H_