blob: 558dcfbf92e48f9e0230d635a2c9d258586f63f9 [file] [log] [blame]
qiangchen42f96d52017-08-08 17:08:03 -07001/*
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#include <jni.h>
12#undef JNIEXPORT
13#define JNIEXPORT __attribute__((visibility("default")))
14
15#include "webrtc/examples/unityplugin/classreferenceholder.h"
16#include "webrtc/rtc_base/ssladapter.h"
17#include "webrtc/sdk/android/src/jni/classreferenceholder.h"
18#include "webrtc/sdk/android/src/jni/jni_helpers.h"
19
magjeda3d4f682017-08-28 16:24:06 -070020namespace webrtc {
21namespace jni {
qiangchen42f96d52017-08-08 17:08:03 -070022
23extern "C" jint JNIEXPORT JNICALL JNI_OnLoad(JavaVM* jvm, void* reserved) {
24 jint ret = InitGlobalJniVariables(jvm);
25 RTC_DCHECK_GE(ret, 0);
26 if (ret < 0)
27 return -1;
28
29 RTC_CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()";
30 LoadGlobalClassReferenceHolder();
31 unity_plugin::LoadGlobalClassReferenceHolder();
32
33 return ret;
34}
35
36extern "C" void JNIEXPORT JNICALL JNI_OnUnLoad(JavaVM* jvm, void* reserved) {
37 FreeGlobalClassReferenceHolder();
38 unity_plugin::FreeGlobalClassReferenceHolder();
39 RTC_CHECK(rtc::CleanupSSL()) << "Failed to CleanupSSL()";
40}
41
magjeda3d4f682017-08-28 16:24:06 -070042} // namespace jni
43} // namespace webrtc