blob: 41bedb7dcb31c9ce5661dc706a701ae1372463b8 [file] [log] [blame]
Jonas Orelandbdcee282017-10-10 14:01:40 +02001/*
2 * Copyright 2017 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
11package org.webrtc;
12
13/** Java wrapper for a C++ TurnCustomizer. */
14public class TurnCustomizer {
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020015 private long nativeTurnCustomizer;
Jonas Orelandbdcee282017-10-10 14:01:40 +020016
17 public TurnCustomizer(long nativeTurnCustomizer) {
18 this.nativeTurnCustomizer = nativeTurnCustomizer;
19 }
20
21 public void dispose() {
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020022 checkTurnCustomizerExists();
Magnus Jedvert84d8ae52017-12-20 15:12:10 +010023 nativeFreeTurnCustomizer(nativeTurnCustomizer);
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020024 nativeTurnCustomizer = 0;
Jonas Orelandbdcee282017-10-10 14:01:40 +020025 }
26
Magnus Jedvert84d8ae52017-12-20 15:12:10 +010027 private static native void nativeFreeTurnCustomizer(long turnCustomizer);
Magnus Jedvert9060eb12017-12-12 12:52:54 +010028
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020029 /** Return a pointer to webrtc::TurnCustomizer. */
Magnus Jedvert9060eb12017-12-12 12:52:54 +010030 @CalledByNative
31 long getNativeTurnCustomizer() {
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020032 checkTurnCustomizerExists();
Magnus Jedvert9060eb12017-12-12 12:52:54 +010033 return nativeTurnCustomizer;
34 }
Sami Kalliomäkiee05e902018-09-28 14:38:21 +020035
36 private void checkTurnCustomizerExists() {
37 if (nativeTurnCustomizer == 0) {
38 throw new IllegalStateException("TurnCustomizer has been disposed.");
39 }
40 }
Jonas Orelandbdcee282017-10-10 14:01:40 +020041}