trace_writer_jnicallback.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  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_NAMESPACE::TraceWriter.
  8. #ifndef JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_
  9. #define JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_
  10. #include <jni.h>
  11. #include <memory>
  12. #include "rocksdb/trace_reader_writer.h"
  13. #include "rocksjni/jnicallback.h"
  14. namespace ROCKSDB_NAMESPACE {
  15. class TraceWriterJniCallback : public JniCallback, public TraceWriter {
  16. public:
  17. TraceWriterJniCallback(
  18. JNIEnv* env, jobject jtrace_writer);
  19. virtual Status Write(const Slice& data);
  20. virtual Status Close();
  21. virtual uint64_t GetFileSize();
  22. private:
  23. jmethodID m_jwrite_proxy_methodid;
  24. jmethodID m_jclose_writer_proxy_methodid;
  25. jmethodID m_jget_file_size_methodid;
  26. };
  27. } // namespace ROCKSDB_NAMESPACE
  28. #endif // JAVA_ROCKSJNI_TRACE_WRITER_JNICALLBACK_H_