]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/rocksjni/event_listener.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / java / rocksjni / event_listener.cc
CommitLineData
20effc67
TL
1// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2// This source code is licensed under both the GPLv2 (found in the
3// COPYING file in the root directory) and Apache 2.0 License
4// (found in the LICENSE.Apache file in the root directory).
5//
6// This file implements the "bridge" between Java and C++ for
1e59de90 7// ROCKSDB_NAMESPACE::EventListener.
20effc67
TL
8
9#include <jni.h>
10
11#include <memory>
12
13#include "include/org_rocksdb_AbstractEventListener.h"
1e59de90 14#include "rocksjni/cplusplus_to_java_convert.h"
20effc67
TL
15#include "rocksjni/event_listener_jnicallback.h"
16#include "rocksjni/portal.h"
17
18/*
19 * Class: org_rocksdb_AbstractEventListener
20 * Method: createNewEventListener
21 * Signature: (J)J
22 */
23jlong Java_org_rocksdb_AbstractEventListener_createNewEventListener(
24 JNIEnv* env, jobject jobj, jlong jenabled_event_callback_values) {
25 auto enabled_event_callbacks =
26 ROCKSDB_NAMESPACE::EnabledEventCallbackJni::toCppEnabledEventCallbacks(
27 jenabled_event_callback_values);
28 auto* sptr_event_listener =
29 new std::shared_ptr<ROCKSDB_NAMESPACE::EventListener>(
30 new ROCKSDB_NAMESPACE::EventListenerJniCallback(
31 env, jobj, enabled_event_callbacks));
1e59de90 32 return GET_CPLUSPLUS_POINTER(sptr_event_listener);
20effc67
TL
33}
34
35/*
36 * Class: org_rocksdb_AbstractEventListener
37 * Method: disposeInternal
38 * Signature: (J)V
39 */
40void Java_org_rocksdb_AbstractEventListener_disposeInternal(JNIEnv*, jobject,
41 jlong jhandle) {
42 delete reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::EventListener>*>(
43 jhandle);
44}