| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 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_ANDROID_JNI_ONLOAD_DELEGATE_H_ | |
| 6 #define BASE_ANDROID_JNI_ONLOAD_DELEGATE_H_ | |
| 7 | |
| 8 #include <jni.h> | |
| 9 | |
| 10 #include "base/base_export.h" | |
| 11 | |
| 12 namespace base { | |
| 13 namespace android { | |
| 14 | |
| 15 // This delegate class is used to implement component specific JNI registration | |
| 16 // and initialization. All methods are called in JNI_OnLoad(). | |
| 17 // | |
| 18 // Both RegisterJNI() and Init() methods are called if the shared library | |
| 19 // is loaded by crazy linker that can't find JNI methods without JNI | |
| 20 // registration, otherwise, only Init() is invoked where dynamic lookup is | |
| 21 // used to find the JNI methods. | |
| 22 // | |
| 23 // It is important to make sure the JNI registration code is only in | |
| 24 // RegisterJNI(), so it could be stripped out when JNI registration isn't | |
| 25 // needed. | |
| 26 class BASE_EXPORT JNIOnLoadDelegate { | |
| 27 public: | |
| 28 virtual ~JNIOnLoadDelegate() {} | |
| 29 | |
| 30 // Returns whether the JNI registration succeeded. | |
| 31 virtual bool RegisterJNI(JNIEnv* env) = 0; | |
| 32 | |
| 33 // Returns whether the initialization succeeded. This method is called after | |
| 34 // RegisterJNI(), all JNI methods shall ready to be used. | |
| 35 virtual bool Init() = 0; | |
| 36 }; | |
| 37 | |
| 38 } // namespace android | |
| 39 } // namespace base | |
| 40 | |
| 41 #endif // BASE_ANDROID_JNI_ONLOAD_DELEGATE_H_ | |
| OLD | NEW |