From 3c0c0283dfb1303e9a6a33e9cfe9bb6eee308ebc Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 21 Sep 2020 19:14:17 -0700 Subject: [PATCH] ircd::db: Elide unnecessary exported symbols. --- ircd/db.h | 63 ++++++++++++++++++++++++++++----------------- ircd/db_env.h | 24 +++++++++++------ ircd/db_env_state.h | 9 ++++--- 3 files changed, 61 insertions(+), 35 deletions(-) diff --git a/ircd/db.h b/ircd/db.h index d90cff7d0..a91cb5b5f 100644 --- a/ircd/db.h +++ b/ircd/db.h @@ -55,6 +55,12 @@ #include #include +#include "db_has.h" +#include "db_port.h" +#include "db_env.h" +#include "db_env_state.h" + +#pragma GCC visibility push(hidden) namespace ircd::db { struct throw_on_error; @@ -137,15 +143,7 @@ namespace ircd::db void commit(database &, rocksdb::WriteBatch &, const sopts &); void append(rocksdb::WriteBatch &, column &, const column::delta &delta); void append(rocksdb::WriteBatch &, const cell::delta &delta); -} -#include "db_has.h" -#include "db_port.h" -#include "db_env.h" -#include "db_env_state.h" - -namespace ircd::db -{ const descriptor &describe(const database::column &); const std::string &name(const database::column &); uint32_t id(const database::column &); @@ -156,10 +154,12 @@ namespace ircd::db std::shared_ptr shared_from(const database::column &); std::shared_ptr shared_from(database::column &); } +#pragma GCC visibility pop #ifdef IRCD_DB_HAS_ALLOCATOR /// Dynamic memory -struct ircd::db::database::allocator final +struct [[gnu::visibility("hidden")]] +ircd::db::database::allocator final :rocksdb::MemoryAllocator { static const size_t ALIGN_DEFAULT; @@ -190,7 +190,8 @@ struct ircd::db::database::allocator final }; #endif -struct ircd::db::database::cache final +struct [[gnu::visibility("hidden")]] +ircd::db::database::cache final :rocksdb::Cache { using Slice = rocksdb::Slice; @@ -241,7 +242,8 @@ struct ircd::db::database::cache final ~cache() noexcept override; }; -struct ircd::db::database::comparator final +struct [[gnu::visibility("hidden")]] +ircd::db::database::comparator final :rocksdb::Comparator { using Slice = rocksdb::Slice; @@ -260,7 +262,8 @@ struct ircd::db::database::comparator final comparator(database *const &d, db::comparator user); }; -struct ircd::db::database::prefix_transform final +struct [[gnu::visibility("hidden")]] +ircd::db::database::prefix_transform final :rocksdb::SliceTransform { using Slice = rocksdb::Slice; @@ -281,7 +284,8 @@ struct ircd::db::database::prefix_transform final {} }; -struct ircd::db::database::mergeop final +struct [[gnu::visibility("hidden")]] +ircd::db::database::mergeop final :std::enable_shared_from_this ,rocksdb::AssociativeMergeOperator { @@ -295,7 +299,8 @@ struct ircd::db::database::mergeop final ~mergeop() noexcept; }; -struct ircd::db::database::compaction_filter final +struct [[gnu::visibility("hidden")]] +ircd::db::database::compaction_filter final :rocksdb::CompactionFilter { using Slice = rocksdb::Slice; @@ -312,7 +317,8 @@ struct ircd::db::database::compaction_filter final ~compaction_filter() noexcept override; }; -struct ircd::db::database::stats final +struct [[gnu::visibility("hidden")]] +ircd::db::database::stats final :rocksdb::Statistics { static constexpr auto NUM_TICKER { rocksdb::TICKER_ENUM_MAX }; @@ -349,7 +355,8 @@ struct ircd::db::database::stats final ~stats() noexcept; }; -struct ircd::db::database::stats::passthru final +struct [[gnu::visibility("hidden")]] +ircd::db::database::stats::passthru final :rocksdb::Statistics { std::array pass {{nullptr}}; @@ -367,7 +374,8 @@ struct ircd::db::database::stats::passthru final ~passthru() noexcept; }; -struct ircd::db::database::column final +struct [[gnu::visibility("hidden")]] +ircd::db::database::column final :std::enable_shared_from_this ,rocksdb::ColumnFamilyDescriptor { @@ -400,7 +408,8 @@ struct ircd::db::database::column final ~column() noexcept; }; -struct ircd::db::txn::handler +struct [[gnu::visibility("hidden")]] +ircd::db::txn::handler :rocksdb::WriteBatch::Handler { using Status = rocksdb::Status; @@ -433,7 +442,8 @@ struct ircd::db::txn::handler }; /// Callback surface for iterating/recovering the write-ahead-log journal. -struct ircd::db::database::wal_filter +struct [[gnu::visibility("hidden")]] +ircd::db::database::wal_filter :rocksdb::WalFilter { using WriteBatch = rocksdb::WriteBatch; @@ -455,7 +465,8 @@ struct ircd::db::database::wal_filter ~wal_filter() noexcept; }; -struct ircd::db::database::events final +struct [[gnu::visibility("hidden")]] +ircd::db::database::events final :std::enable_shared_from_this ,rocksdb::EventListener { @@ -479,7 +490,8 @@ struct ircd::db::database::events final {} }; -struct ircd::db::database::logger final +struct [[gnu::visibility("hidden")]] +ircd::db::database::logger final :std::enable_shared_from_this ,rocksdb::Logger { @@ -495,7 +507,8 @@ struct ircd::db::database::logger final ~logger() noexcept override; }; -struct ircd::db::database::rate_limiter +struct [[gnu::visibility("hidden")]] +ircd::db::database::rate_limiter :std::enable_shared_from_this ,rocksdb::RateLimiter { @@ -526,12 +539,14 @@ struct ircd::db::database::rate_limiter // util // -struct ircd::db::throw_on_error +struct [[gnu::visibility("hidden")]] +ircd::db::throw_on_error { throw_on_error(const rocksdb::Status & = rocksdb::Status::OK()); }; -struct ircd::db::error_to_status +struct [[gnu::visibility("hidden")]] +ircd::db::error_to_status :rocksdb::Status { error_to_status(const std::error_code &); diff --git a/ircd/db_env.h b/ircd/db_env.h index 515c98ac3..66fad8973 100644 --- a/ircd/db_env.h +++ b/ircd/db_env.h @@ -10,7 +10,8 @@ /// Internal environment hookup. /// -struct ircd::db::database::env final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env final :rocksdb::Env { struct writable_file; @@ -93,7 +94,8 @@ struct ircd::db::database::env final ~env() noexcept; }; -struct ircd::db::database::env::directory final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::directory final :rocksdb::Directory { using Status = rocksdb::Status; @@ -107,7 +109,8 @@ struct ircd::db::database::env::directory final ~directory() noexcept; }; -struct ircd::db::database::env::file_lock final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::file_lock final :rocksdb::FileLock { database &d; @@ -116,7 +119,8 @@ struct ircd::db::database::env::file_lock final ~file_lock() noexcept; }; -struct ircd::db::database::env::random_access_file final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::random_access_file final :rocksdb::RandomAccessFile { using Status = rocksdb::Status; @@ -146,7 +150,8 @@ struct ircd::db::database::env::random_access_file final ~random_access_file() noexcept; }; -struct ircd::db::database::env::random_rw_file final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::random_rw_file final :rocksdb::RandomRWFile { using Status = rocksdb::Status; @@ -175,7 +180,8 @@ struct ircd::db::database::env::random_rw_file final ~random_rw_file() noexcept; }; -struct ircd::db::database::env::sequential_file final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::sequential_file final :rocksdb::SequentialFile { using Status = rocksdb::Status; @@ -203,7 +209,8 @@ struct ircd::db::database::env::sequential_file final ~sequential_file() noexcept; }; -struct ircd::db::database::env::writable_file +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::writable_file :rocksdb::WritableFile { using Status = rocksdb::Status; @@ -251,7 +258,8 @@ struct ircd::db::database::env::writable_file ~writable_file() noexcept; }; -struct ircd::db::database::env::writable_file_direct final +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::writable_file_direct final :writable_file { size_t alignment {0}; diff --git a/ircd/db_env_state.h b/ircd/db_env_state.h index 44e92c6f9..b725ec211 100644 --- a/ircd/db_env_state.h +++ b/ircd/db_env_state.h @@ -11,7 +11,8 @@ #pragma once #define HAVE_IRCD_DB_ENV_STATE_H -struct ircd::db::database::env::state +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::state { struct task; struct pool; @@ -30,7 +31,8 @@ struct ircd::db::database::env::state ~state() noexcept; }; -struct ircd::db::database::env::state::pool +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::state::pool { using Priority = rocksdb::Env::Priority; using IOPriority = rocksdb::Env::IOPriority; @@ -60,7 +62,8 @@ struct ircd::db::database::env::state::pool ~pool() noexcept; }; -struct ircd::db::database::env::state::task +struct [[gnu::visibility("hidden")]] +ircd::db::database::env::state::task { void (*func)(void *arg); void (*cancel)(void *arg);