]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/wal_filter_jnicallback.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / rocksdb / java / rocksjni / wal_filter_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_NAMESPACE::WalFilter.
8
9 #ifndef JAVA_ROCKSJNI_WAL_FILTER_JNICALLBACK_H_
10 #define JAVA_ROCKSJNI_WAL_FILTER_JNICALLBACK_H_
11
12 #include <jni.h>
13 #include <map>
14 #include <memory>
15 #include <string>
16
17 #include "rocksdb/wal_filter.h"
18 #include "rocksjni/jnicallback.h"
19
20 namespace ROCKSDB_NAMESPACE {
21
22 class WalFilterJniCallback : public JniCallback, public WalFilter {
23 public:
24 WalFilterJniCallback(
25 JNIEnv* env, jobject jwal_filter);
26 virtual void ColumnFamilyLogNumberMap(
27 const std::map<uint32_t, uint64_t>& cf_lognumber_map,
28 const std::map<std::string, uint32_t>& cf_name_id_map);
29 virtual WalFilter::WalProcessingOption LogRecordFound(
30 unsigned long long log_number, const std::string& log_file_name,
31 const WriteBatch& batch, WriteBatch* new_batch, bool* batch_changed);
32 virtual const char* Name() const;
33
34 private:
35 std::unique_ptr<const char[]> m_name;
36 jmethodID m_column_family_log_number_map_mid;
37 jmethodID m_log_record_found_proxy_mid;
38 };
39
40 } // namespace ROCKSDB_NAMESPACE
41
42 #endif // JAVA_ROCKSJNI_WAL_FILTER_JNICALLBACK_H_