Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: base/utf_string_conversions.h

Issue 6725001: Base: First pass at having base.dll: definition of (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_UTF_STRING_CONVERSIONS_H_ 5 #ifndef BASE_UTF_STRING_CONVERSIONS_H_
6 #define BASE_UTF_STRING_CONVERSIONS_H_ 6 #define BASE_UTF_STRING_CONVERSIONS_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/base_api.h"
11 #include "base/string16.h" 12 #include "base/string16.h"
12 #include "base/string_piece.h" 13 #include "base/string_piece.h"
13 14
14 // These convert between UTF-8, -16, and -32 strings. They are potentially slow, 15 // These convert between UTF-8, -16, and -32 strings. They are potentially slow,
15 // so avoid unnecessary conversions. The low-level versions return a boolean 16 // so avoid unnecessary conversions. The low-level versions return a boolean
16 // indicating whether the conversion was 100% valid. In this case, it will still 17 // indicating whether the conversion was 100% valid. In this case, it will still
17 // do the best it can and put the result in the output buffer. The versions that 18 // do the best it can and put the result in the output buffer. The versions that
18 // return strings ignore this error and just return the best conversion 19 // return strings ignore this error and just return the best conversion
19 // possible. 20 // possible.
20 bool WideToUTF8(const wchar_t* src, size_t src_len, std::string* output); 21 BASE_API bool WideToUTF8(const wchar_t* src, size_t src_len,
21 std::string WideToUTF8(const std::wstring& wide); 22 std::string* output);
22 bool UTF8ToWide(const char* src, size_t src_len, std::wstring* output); 23 BASE_API std::string WideToUTF8(const std::wstring& wide);
23 std::wstring UTF8ToWide(const base::StringPiece& utf8); 24 BASE_API bool UTF8ToWide(const char* src, size_t src_len, std::wstring* output);
25 BASE_API std::wstring UTF8ToWide(const base::StringPiece& utf8);
24 26
25 bool WideToUTF16(const wchar_t* src, size_t src_len, string16* output); 27 BASE_API bool WideToUTF16(const wchar_t* src, size_t src_len, string16* output);
26 string16 WideToUTF16(const std::wstring& wide); 28 BASE_API string16 WideToUTF16(const std::wstring& wide);
27 bool UTF16ToWide(const char16* src, size_t src_len, std::wstring* output); 29 BASE_API bool UTF16ToWide(const char16* src, size_t src_len,
28 std::wstring UTF16ToWide(const string16& utf16); 30 std::wstring* output);
31 BASE_API std::wstring UTF16ToWide(const string16& utf16);
29 32
30 bool UTF8ToUTF16(const char* src, size_t src_len, string16* output); 33 BASE_API bool UTF8ToUTF16(const char* src, size_t src_len, string16* output);
31 string16 UTF8ToUTF16(const base::StringPiece& utf8); 34 BASE_API string16 UTF8ToUTF16(const base::StringPiece& utf8);
32 bool UTF16ToUTF8(const char16* src, size_t src_len, std::string* output); 35 BASE_API bool UTF16ToUTF8(const char16* src, size_t src_len,
33 std::string UTF16ToUTF8(const string16& utf16); 36 std::string* output);
37 BASE_API std::string UTF16ToUTF8(const string16& utf16);
34 38
35 // We are trying to get rid of wstring as much as possible, but it's too big 39 // We are trying to get rid of wstring as much as possible, but it's too big
36 // a mess to do it all at once. These conversions should be used when we 40 // a mess to do it all at once. These conversions should be used when we
37 // really should just be passing a string16 around, but we haven't finished 41 // really should just be passing a string16 around, but we haven't finished
38 // porting whatever module uses wstring and the conversion is being used as a 42 // porting whatever module uses wstring and the conversion is being used as a
39 // stopcock. This makes it easy to grep for the ones that should be removed. 43 // stopcock. This makes it easy to grep for the ones that should be removed.
40 #if defined(OS_WIN) 44 #if defined(OS_WIN)
41 # define WideToUTF16Hack 45 # define WideToUTF16Hack
42 # define UTF16ToWideHack 46 # define UTF16ToWideHack
43 #else 47 #else
44 # define WideToUTF16Hack WideToUTF16 48 # define WideToUTF16Hack WideToUTF16
45 # define UTF16ToWideHack UTF16ToWide 49 # define UTF16ToWideHack UTF16ToWide
46 #endif 50 #endif
47 51
48 // These convert an ASCII string, typically a hardcoded constant, to a 52 // These convert an ASCII string, typically a hardcoded constant, to a
49 // UTF16/Wide string. 53 // UTF16/Wide string.
50 std::wstring ASCIIToWide(const base::StringPiece& ascii); 54 BASE_API std::wstring ASCIIToWide(const base::StringPiece& ascii);
51 string16 ASCIIToUTF16(const base::StringPiece& ascii); 55 BASE_API string16 ASCIIToUTF16(const base::StringPiece& ascii);
52 56
53 #endif // BASE_UTF_STRING_CONVERSIONS_H_ 57 #endif // BASE_UTF_STRING_CONVERSIONS_H_
OLDNEW
« base/synchronization/lock_impl.h ('K') | « base/synchronization/waitable_event.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698