]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/trace_writer_jnicallback.h
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / java / rocksjni / trace_writer_jnicallback.h
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 callback "bridge" between Java and C++ for
7 // rocksdb::TraceWriter.
8
9 #ifndef JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_
10 #define JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_
11
12 #include <jni.h>
13 #include <memory>
14
15 #include "rocksdb/trace_reader_writer.h"
16 #include "rocksjni/jnicallback.h"
17
18 namespace rocksdb {
19
20 class TraceWriterJniCallback : public JniCallback, public TraceWriter {
21 public:
22 TraceWriterJniCallback(
23 JNIEnv* env, jobject jtrace_writer);
24 virtual Status Write(const Slice& data);
25 virtual Status Close();
26 virtual uint64_t GetFileSize();
27
28 private:
29 jmethodID m_jwrite_proxy_methodid;
30 jmethodID m_jclose_writer_proxy_methodid;
31 jmethodID m_jget_file_size_methodid;
32 };
33
34 } //namespace rocksdb
35
36 #endif // JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_