1 /* 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 // This is a supplement of webrtc::jni::ClassReferenceHolder. 12 // The purpose of this ClassReferenceHolder is to load the example 13 // specific java class into JNI c++ side, so that our c++ code can 14 // call those java functions. 15 16 #ifndef EXAMPLES_UNITYPLUGIN_CLASS_REFERENCE_HOLDER_H_ 17 #define EXAMPLES_UNITYPLUGIN_CLASS_REFERENCE_HOLDER_H_ 18 19 #include <jni.h> 20 21 #include <map> 22 #include <string> 23 #include <vector> 24 25 namespace unity_plugin { 26 27 // LoadGlobalClassReferenceHolder must be called in JNI_OnLoad. 28 void LoadGlobalClassReferenceHolder(); 29 // FreeGlobalClassReferenceHolder must be called in JNI_UnLoad. 30 void FreeGlobalClassReferenceHolder(); 31 32 // Returns a global reference guaranteed to be valid for the lifetime of the 33 // process. 34 jclass FindClass(JNIEnv* jni, const char* name); 35 36 } // namespace unity_plugin 37 38 #endif // EXAMPLES_UNITYPLUGIN_CLASS_REFERENCE_HOLDER_H_ 39