blob: 89af5b0a89757c16ecbea1322256bfa1387af59b [file] [log] [blame]
[email protected]fe0f1ab2012-02-09 21:02:271// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]61c86c62011-08-02 16:11:162// 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_ANDROID_JNI_STRING_H_
6#define BASE_ANDROID_JNI_STRING_H_
7
8#include <jni.h>
9#include <string>
10
[email protected]fe0f1ab2012-02-09 21:02:2711#include "base/android/scoped_java_ref.h"
[email protected]be363b22012-11-01 17:38:4712#include "base/base_export.h"
[email protected]eb62f7262013-03-30 14:29:0013#include "base/strings/string_piece.h"
[email protected]61c86c62011-08-02 16:11:1614
15namespace base {
16namespace android {
17
18// Convert a Java string to UTF8. Returns a std string.
[email protected]df0d7142012-12-14 01:31:1719BASE_EXPORT void ConvertJavaStringToUTF8(JNIEnv* env,
20 jstring str,
21 std::string* result);
[email protected]be363b22012-11-01 17:38:4722BASE_EXPORT std::string ConvertJavaStringToUTF8(JNIEnv* env, jstring str);
23BASE_EXPORT std::string ConvertJavaStringToUTF8(const JavaRef<jstring>& str);
[email protected]61c86c62011-08-02 16:11:1624
25// Convert a std string to Java string.
[email protected]be363b22012-11-01 17:38:4726BASE_EXPORT ScopedJavaLocalRef<jstring> ConvertUTF8ToJavaString(
[email protected]053a96d2012-06-12 03:25:4427 JNIEnv* env,
28 const base::StringPiece& str);
[email protected]61c86c62011-08-02 16:11:1629
30// Convert a Java string to UTF16. Returns a string16.
[email protected]df0d7142012-12-14 01:31:1731BASE_EXPORT void ConvertJavaStringToUTF16(JNIEnv* env,
32 jstring str,
33 string16* result);
[email protected]be363b22012-11-01 17:38:4734BASE_EXPORT string16 ConvertJavaStringToUTF16(JNIEnv* env, jstring str);
35BASE_EXPORT string16 ConvertJavaStringToUTF16(const JavaRef<jstring>& str);
[email protected]61c86c62011-08-02 16:11:1636
37// Convert a string16 to a Java string.
[email protected]be363b22012-11-01 17:38:4738BASE_EXPORT ScopedJavaLocalRef<jstring> ConvertUTF16ToJavaString(
[email protected]053a96d2012-06-12 03:25:4439 JNIEnv* env,
40 const base::StringPiece16& str);
[email protected]61c86c62011-08-02 16:11:1641
42} // namespace android
43} // namespace base
44
45#endif // BASE_ANDROID_JNI_STRING_H_