mirror of
https://github.com/matrix-construct/construct
synced 2025-01-14 00:34:18 +01:00
ircd::db: Checkpoint skeleton state structure for env.
This commit is contained in:
parent
a077766812
commit
960553f279
3 changed files with 42 additions and 1 deletions
3
include/ircd/db/database/env/env.h
vendored
3
include/ircd/db/database/env/env.h
vendored
|
@ -26,6 +26,7 @@ struct ircd::db::database::env final
|
||||||
struct random_rw_file;
|
struct random_rw_file;
|
||||||
struct directory;
|
struct directory;
|
||||||
struct file_lock;
|
struct file_lock;
|
||||||
|
struct state;
|
||||||
|
|
||||||
using Status = rocksdb::Status;
|
using Status = rocksdb::Status;
|
||||||
using EnvOptions = rocksdb::EnvOptions;
|
using EnvOptions = rocksdb::EnvOptions;
|
||||||
|
@ -45,6 +46,8 @@ struct ircd::db::database::env final
|
||||||
*rocksdb::Env::Default()
|
*rocksdb::Env::Default()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::unique_ptr<struct state> st;
|
||||||
|
|
||||||
Status NewSequentialFile(const std::string& f, std::unique_ptr<SequentialFile>* r, const EnvOptions& options) noexcept override;
|
Status NewSequentialFile(const std::string& f, std::unique_ptr<SequentialFile>* r, const EnvOptions& options) noexcept override;
|
||||||
Status NewRandomAccessFile(const std::string& f, std::unique_ptr<RandomAccessFile>* r, const EnvOptions& options) noexcept override;
|
Status NewRandomAccessFile(const std::string& f, std::unique_ptr<RandomAccessFile>* r, const EnvOptions& options) noexcept override;
|
||||||
Status NewWritableFile(const std::string& f, std::unique_ptr<WritableFile>* r, const EnvOptions& options) noexcept override;
|
Status NewWritableFile(const std::string& f, std::unique_ptr<WritableFile>* r, const EnvOptions& options) noexcept override;
|
||||||
|
|
20
include/ircd/db/database/env/state.h
vendored
Normal file
20
include/ircd/db/database/env/state.h
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Matrix Construct
|
||||||
|
//
|
||||||
|
// Copyright (C) Matrix Construct Developers, Authors & Contributors
|
||||||
|
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#define HAVE_IRCD_DB_DATABASE_ENV_STATE_H
|
||||||
|
|
||||||
|
struct ircd::db::database::env::state
|
||||||
|
{
|
||||||
|
database &d;
|
||||||
|
|
||||||
|
state(database *const &d);
|
||||||
|
~state() noexcept;
|
||||||
|
};
|
20
ircd/db.cc
20
ircd/db.cc
|
@ -44,6 +44,8 @@
|
||||||
#include <ircd/db/database/env/random_rw_file.h>
|
#include <ircd/db/database/env/random_rw_file.h>
|
||||||
#include <ircd/db/database/env/directory.h>
|
#include <ircd/db/database/env/directory.h>
|
||||||
#include <ircd/db/database/env/file_lock.h>
|
#include <ircd/db/database/env/file_lock.h>
|
||||||
|
#include <ircd/db/database/env/state.h>
|
||||||
|
|
||||||
|
|
||||||
// RocksDB port linktime-overriding interfaces (experimental).
|
// RocksDB port linktime-overriding interfaces (experimental).
|
||||||
#ifdef IRCD_DB_PORT
|
#ifdef IRCD_DB_PORT
|
||||||
|
@ -1742,7 +1744,8 @@ noexcept
|
||||||
//
|
//
|
||||||
|
|
||||||
ircd::db::database::env::env(database *const &d)
|
ircd::db::database::env::env(database *const &d)
|
||||||
:d{*d}
|
:d{*d},
|
||||||
|
st{std::make_unique<state>(d)}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3242,6 +3245,21 @@ rocksdb::port::CondVar::SignalAll()
|
||||||
|
|
||||||
#endif // IRCD_DB_PORT
|
#endif // IRCD_DB_PORT
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// db/database/env/state.h
|
||||||
|
//
|
||||||
|
|
||||||
|
ircd::db::database::env::state::state(database *const &d)
|
||||||
|
:d{*d}
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ircd::db::database::env::state::~state()
|
||||||
|
noexcept
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// db/txn.h
|
// db/txn.h
|
||||||
|
|
Loading…
Reference in a new issue