You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.5 KiB
C++

//
// Created by Ziyang Hu on 2022/4/13.
//
#include "cozorocks.h"
#include "cozorocks/src/bridge.rs.h"
void write_status_impl(BridgeStatus &status, StatusCode code, StatusSubCode subcode, StatusSeverity severity,
int bridge_code) {
status.code = code;
status.subcode = subcode;
status.severity = severity;
status.bridge_code = static_cast<StatusBridgeCode>(bridge_code);
}
BridgeStatus IteratorBridge::status() const {
BridgeStatus s;
write_status(inner->status(), s);
return s;
}
//unique_ptr<vector<PinnableSlice>> TransactionBridge::multiget_txn(
//// const ColumnFamilyHandle &cf,
// rust::Slice<const rust::Slice<const uint8_t>> keys,
// rust::Slice<BridgeStatus> statuses) const {
// auto cpp_keys = vector<Slice>();
// cpp_keys.reserve(keys.size());
// for (auto key: keys) {
// auto cpp_key = convert_slice(key);
// cpp_keys.push_back(cpp_key);
// }
// auto ret = make_unique<vector<PinnableSlice>>(keys.size());
// auto cpp_statuses = vector<Status>(keys.size());
// inner->MultiGet(*r_ops,
// raw_db->DefaultColumnFamily(),
//// const_cast<ColumnFamilyHandle *>(&cf),
// keys.size(),
// cpp_keys.data(),
// ret->data(),
// cpp_statuses.data());
// for (size_t i = 0; i < cpp_statuses.size(); ++i) {
// write_status(std::move(cpp_statuses[i]), statuses[i]);
// }
// return ret;
//}
//
//unique_ptr<vector<PinnableSlice>> TransactionBridge::multiget_raw(
//// const ColumnFamilyHandle &cf,
// rust::Slice<const rust::Slice<const uint8_t>> keys,
// rust::Slice<BridgeStatus> statuses) const {
// auto cpp_keys = vector<Slice>();
// cpp_keys.reserve(keys.size());
// for (auto key: keys) {
// auto cpp_key = convert_slice(key);
// cpp_keys.push_back(cpp_key);
// }
// auto ret = make_unique<vector<PinnableSlice>>(keys.size());
// auto cpp_statuses = vector<Status>(keys.size());
// raw_db->MultiGet(*r_ops,
// raw_db->DefaultColumnFamily(),
//// const_cast<ColumnFamilyHandle *>(&cf),
// keys.size(),
// cpp_keys.data(),
// ret->data(),
// cpp_statuses.data());
// for (size_t i = 0; i < cpp_statuses.size(); ++i) {
// write_status(std::move(cpp_statuses[i]), statuses[i]);
// }
// return ret;
//}