cassandra_value_operator.cc 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright (c) 2017-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. #include <jni.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <memory>
  9. #include <string>
  10. #include "include/org_rocksdb_CassandraValueMergeOperator.h"
  11. #include "rocksdb/db.h"
  12. #include "rocksdb/memtablerep.h"
  13. #include "rocksdb/merge_operator.h"
  14. #include "rocksdb/options.h"
  15. #include "rocksdb/slice_transform.h"
  16. #include "rocksdb/statistics.h"
  17. #include "rocksdb/table.h"
  18. #include "rocksjni/portal.h"
  19. #include "utilities/cassandra/merge_operator.h"
  20. /*
  21. * Class: org_rocksdb_CassandraValueMergeOperator
  22. * Method: newSharedCassandraValueMergeOperator
  23. * Signature: (II)J
  24. */
  25. jlong Java_org_rocksdb_CassandraValueMergeOperator_newSharedCassandraValueMergeOperator(
  26. JNIEnv* /*env*/, jclass /*jclazz*/, jint gcGracePeriodInSeconds,
  27. jint operands_limit) {
  28. auto* op = new std::shared_ptr<ROCKSDB_NAMESPACE::MergeOperator>(
  29. new ROCKSDB_NAMESPACE::cassandra::CassandraValueMergeOperator(
  30. gcGracePeriodInSeconds, operands_limit));
  31. return reinterpret_cast<jlong>(op);
  32. }
  33. /*
  34. * Class: org_rocksdb_CassandraValueMergeOperator
  35. * Method: disposeInternal
  36. * Signature: (J)V
  37. */
  38. void Java_org_rocksdb_CassandraValueMergeOperator_disposeInternal(
  39. JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
  40. auto* op =
  41. reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::MergeOperator>*>(
  42. jhandle);
  43. delete op;
  44. }