Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / base / android / jni_generator / sample_for_tests.h
1 // Copyright (c) 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 #include <jni.h>
6 #include <map>
7 #include <string>
8
9 #include "base/android/jni_android.h"
10 #include "base/basictypes.h"
11
12 namespace base {
13 namespace android {
14
15 // This file is used to:
16 // - document the best practices and guidelines on JNI usage.
17 // - ensure sample_for_tests_jni.h compiles and the functions declared in it
18 // as expected.
19 //
20 // All methods are called directly from Java. See more documentation in
21 // SampleForTests.java.
22 class CPPClass {
23  public:
24   CPPClass();
25   ~CPPClass();
26
27   class InnerClass {
28    public:
29     jdouble MethodOtherP0(JNIEnv* env, jobject obj);
30   };
31
32   void Destroy(JNIEnv* env, jobject obj);
33
34   jint Method(JNIEnv* env, jobject obj);
35
36   void AddStructB(JNIEnv* env, jobject obj, jobject structb);
37
38   void IterateAndDoSomethingWithStructB(JNIEnv* env, jobject obj);
39
40   base::android::ScopedJavaLocalRef<jstring> ReturnAString(
41       JNIEnv* env, jobject obj);
42
43  private:
44   std::map<long, std::string> map_;
45
46   DISALLOW_COPY_AND_ASSIGN(CPPClass);
47 };
48
49 }  // namespace android
50 }  // namespace base