#include "db/column_family.h"
#include "db/db_impl/db_impl.h"
#include "db/error_handler.h"
+#include "db/periodic_work_scheduler.h"
#include "monitoring/thread_status_updater.h"
#include "util/cast_util.h"
if (column_family == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
- auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
+ auto cfh = static_cast_with_check<ColumnFamilyHandleImpl>(column_family);
cfd = cfh->cfd();
}
InstrumentedMutexLock l(&mutex_);
void DBImpl::TEST_GetFilesMetaData(
ColumnFamilyHandle* column_family,
std::vector<std::vector<FileMetaData>>* metadata) {
- auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
+ auto cfh = static_cast_with_check<ColumnFamilyHandleImpl>(column_family);
auto cfd = cfh->cfd();
InstrumentedMutexLock l(&mutex_);
metadata->resize(NumberLevels());
if (column_family == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
- auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
+ auto cfh = static_cast_with_check<ColumnFamilyHandleImpl>(column_family);
cfd = cfh->cfd();
}
int output_level =
if (cfh == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
- auto cfhi = reinterpret_cast<ColumnFamilyHandleImpl*>(cfh);
+ auto cfhi = static_cast_with_check<ColumnFamilyHandleImpl>(cfh);
cfd = cfhi->cfd();
}
return FlushMemTable(cfd, fo, FlushReason::kTest);
if (column_family == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
- auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
+ auto cfh = static_cast_with_check<ColumnFamilyHandleImpl>(column_family);
cfd = cfh->cfd();
}
return WaitForFlushMemTable(cfd, nullptr, false);
ColumnFamilyHandle* column_family, MutableCFOptions* mutable_cf_options) {
InstrumentedMutexLock l(&mutex_);
- auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
+ auto cfh = static_cast_with_check<ColumnFamilyHandleImpl>(column_family);
*mutable_cf_options = *cfh->cfd()->GetLatestMutableCFOptions();
return Status::OK();
}
return GetWalPreallocateBlockSize(write_buffer_size);
}
-void DBImpl::TEST_WaitForDumpStatsRun(std::function<void()> callback) const {
- if (thread_dump_stats_ != nullptr) {
- thread_dump_stats_->TEST_WaitForRun(callback);
+#ifndef ROCKSDB_LITE
+void DBImpl::TEST_WaitForStatsDumpRun(std::function<void()> callback) const {
+ if (periodic_work_scheduler_ != nullptr) {
+ static_cast<PeriodicWorkTestScheduler*>(periodic_work_scheduler_)
+ ->TEST_WaitForRun(callback);
}
}
-void DBImpl::TEST_WaitForPersistStatsRun(std::function<void()> callback) const {
- if (thread_persist_stats_ != nullptr) {
- thread_persist_stats_->TEST_WaitForRun(callback);
- }
-}
-
-bool DBImpl::TEST_IsPersistentStatsEnabled() const {
- return thread_persist_stats_ && thread_persist_stats_->IsRunning();
+PeriodicWorkTestScheduler* DBImpl::TEST_GetPeriodicWorkScheduler() const {
+ return static_cast<PeriodicWorkTestScheduler*>(periodic_work_scheduler_);
}
+#endif // !ROCKSDB_LITE
size_t DBImpl::TEST_EstimateInMemoryStatsHistorySize() const {
return EstimateInMemoryStatsHistorySize();