0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-26 08:42:34 +01:00

ircd:Ⓜ️:vm: Remove the fronts map.

This commit is contained in:
Jason Volk 2018-02-14 16:09:24 -08:00
parent 24aac22e33
commit a7c662529d
3 changed files with 0 additions and 45 deletions

View file

@ -20,7 +20,6 @@ namespace ircd::m::vm
IRCD_M_EXCEPTION(VM_ERROR, VM_INVALID, http::BAD_REQUEST);
enum fault :uint;
struct front;
struct eval;
using closure = std::function<void (const event &)>;
@ -28,7 +27,6 @@ namespace ircd::m::vm
using dbs::cursor;
extern struct log::log log;
extern struct fronts fronts;
extern uint64_t current_sequence;
extern ctx::view<const event> inserted;
@ -52,7 +50,6 @@ struct ircd::m::vm::eval
const struct opts *opts {&default_opts};
db::txn txn{*dbs::events};
uint64_t cs{0};
fault operator()(const event &);
@ -88,40 +85,3 @@ enum ircd::m::vm::fault
EVENT, ///< Eval requires addl events in the ef register (#ef)
STATE, ///< Required state is missing (#st)
};
/// The "event front" for a graph. This holds all of the childless events
/// for a room. Each childless event may exist at a different depth, but
/// we track the highest depth to increment it for issuing the next event.
/// The contents of the front will then be used as the prev references for
/// that new event. The front is then replaced by the new event. This is
/// managed by the vm core.
///
struct ircd::m::vm::front
{
int64_t top {0};
std::map<std::string, uint64_t, std::less<std::string_view>> map;
};
/// Singleton iface to all "event fronts" - the top depth in an active graph
///
/// This extern singleton is a fundamental structure which holds the highest
/// depth events in a graph which have no children. The fronts collection
/// itself is a map of rooms by ID, and one 'front' is held in RAM for each
/// room. Each front is a collection of those events, which ideally, will
/// become the prev references for the next event this server issues in the
/// room.
///
/// This is managed by the vm core. The fronts interface is the root of the
/// RAM footprint for a room known to IRCd. In other words, all room data is
/// stored in the database except what is reachable through here.
///
struct ircd::m::vm::fronts
{
std::map<std::string, front, std::less<std::string_view>> map;
friend front &fetch(const room::id &, front &, const event &);
public:
front &get(const room::id &, const event &);
front &get(const room::id &);
};

View file

@ -98,7 +98,6 @@ noexcept try
{
leave_ircd_room();
m::listeners.clear();
vm::fronts.map.clear();
m::modules.clear();
}
catch(const m::error &e)

View file

@ -16,10 +16,6 @@ ircd::m::vm::log
"vm", 'v'
};
decltype(ircd::m::vm::fronts)
ircd::m::vm::fronts
{};
ircd::ctx::view<const ircd::m::event>
ircd::m::vm::inserted
{};