fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.5 KiB
107 lines
3.5 KiB
3 years ago
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||
|
// This source code is licensed under both the GPLv2 (found in the
|
||
|
// COPYING file in the root directory) and Apache 2.0 License
|
||
|
// (found in the LICENSE.Apache file in the root directory).
|
||
|
|
||
|
#include "rocksdb/trace_record_result.h"
|
||
|
|
||
|
namespace ROCKSDB_NAMESPACE {
|
||
|
|
||
|
// TraceRecordResult
|
||
|
TraceRecordResult::TraceRecordResult(TraceType trace_type)
|
||
|
: trace_type_(trace_type) {}
|
||
|
|
||
|
TraceType TraceRecordResult::GetTraceType() const { return trace_type_; }
|
||
|
|
||
|
// TraceExecutionResult
|
||
|
TraceExecutionResult::TraceExecutionResult(uint64_t start_timestamp,
|
||
|
uint64_t end_timestamp,
|
||
|
TraceType trace_type)
|
||
|
: TraceRecordResult(trace_type),
|
||
|
ts_start_(start_timestamp),
|
||
|
ts_end_(end_timestamp) {
|
||
|
assert(ts_start_ <= ts_end_);
|
||
|
}
|
||
|
|
||
|
uint64_t TraceExecutionResult::GetStartTimestamp() const { return ts_start_; }
|
||
|
|
||
|
uint64_t TraceExecutionResult::GetEndTimestamp() const { return ts_end_; }
|
||
|
|
||
|
// StatusOnlyTraceExecutionResult
|
||
|
StatusOnlyTraceExecutionResult::StatusOnlyTraceExecutionResult(
|
||
|
Status status, uint64_t start_timestamp, uint64_t end_timestamp,
|
||
|
TraceType trace_type)
|
||
|
: TraceExecutionResult(start_timestamp, end_timestamp, trace_type),
|
||
|
status_(std::move(status)) {}
|
||
|
|
||
|
const Status& StatusOnlyTraceExecutionResult::GetStatus() const {
|
||
|
return status_;
|
||
|
}
|
||
|
|
||
|
Status StatusOnlyTraceExecutionResult::Accept(Handler* handler) {
|
||
|
assert(handler != nullptr);
|
||
|
return handler->Handle(*this);
|
||
|
}
|
||
|
|
||
|
// SingleValueTraceExecutionResult
|
||
|
SingleValueTraceExecutionResult::SingleValueTraceExecutionResult(
|
||
|
Status status, const std::string& value, uint64_t start_timestamp,
|
||
|
uint64_t end_timestamp, TraceType trace_type)
|
||
|
: TraceExecutionResult(start_timestamp, end_timestamp, trace_type),
|
||
|
status_(std::move(status)),
|
||
|
value_(value) {}
|
||
|
|
||
|
SingleValueTraceExecutionResult::SingleValueTraceExecutionResult(
|
||
|
Status status, std::string&& value, uint64_t start_timestamp,
|
||
|
uint64_t end_timestamp, TraceType trace_type)
|
||
|
: TraceExecutionResult(start_timestamp, end_timestamp, trace_type),
|
||
|
status_(std::move(status)),
|
||
|
value_(std::move(value)) {}
|
||
|
|
||
|
SingleValueTraceExecutionResult::~SingleValueTraceExecutionResult() {
|
||
|
value_.clear();
|
||
|
}
|
||
|
|
||
|
const Status& SingleValueTraceExecutionResult::GetStatus() const {
|
||
|
return status_;
|
||
|
}
|
||
|
|
||
|
const std::string& SingleValueTraceExecutionResult::GetValue() const {
|
||
|
return value_;
|
||
|
}
|
||
|
|
||
|
Status SingleValueTraceExecutionResult::Accept(Handler* handler) {
|
||
|
assert(handler != nullptr);
|
||
|
return handler->Handle(*this);
|
||
|
}
|
||
|
|
||
|
// MultiValuesTraceExecutionResult
|
||
|
MultiValuesTraceExecutionResult::MultiValuesTraceExecutionResult(
|
||
|
std::vector<Status> multi_status, std::vector<std::string> values,
|
||
|
uint64_t start_timestamp, uint64_t end_timestamp, TraceType trace_type)
|
||
|
: TraceExecutionResult(start_timestamp, end_timestamp, trace_type),
|
||
|
multi_status_(std::move(multi_status)),
|
||
|
values_(std::move(values)) {}
|
||
|
|
||
|
MultiValuesTraceExecutionResult::~MultiValuesTraceExecutionResult() {
|
||
|
multi_status_.clear();
|
||
|
values_.clear();
|
||
|
}
|
||
|
|
||
|
const std::vector<Status>& MultiValuesTraceExecutionResult::GetMultiStatus()
|
||
|
const {
|
||
|
return multi_status_;
|
||
|
}
|
||
|
|
||
|
const std::vector<std::string>& MultiValuesTraceExecutionResult::GetValues()
|
||
|
const {
|
||
|
return values_;
|
||
|
}
|
||
|
|
||
|
Status MultiValuesTraceExecutionResult::Accept(Handler* handler) {
|
||
|
assert(handler != nullptr);
|
||
|
return handler->Handle(*this);
|
||
|
}
|
||
|
|
||
|
} // namespace ROCKSDB_NAMESPACE
|