Relational NT
A relational database kernel shaped around NT-style object management.
Loading...
Searching...
No Matches
nt::ObjectManager::object_type Struct Reference

Describes the behavior and capabilities of an object category. More...

#include <ObjectManager.h>

Inheritance diagram for nt::ObjectManager::object_type:
nt::ObjectManager::ephemeral_object_type

Public Attributes

OBJECT_TYPE label
 Object category label.
bool disposable
 True when the object is not durable.
std::set< METHOD > methods
 Methods supported by this object type.
bool exclusive = false
 When true, only one write-mode handle may be open at a time.

Detailed Description

Describes the behavior and capabilities of an object category.

Todo
Replace methods with typed callback fields: OpenProcedure, CloseProcedure, DeleteProcedure, and ParseProcedure. Store a const char* name label alongside each callback so that logs and assertions can identify which type fired without having to dereference a pointer. IdentityManager::CanOpen / CanClose then become thin dispatchers that invoke the corresponding procedure, or are absorbed into HandlerManager directly. See docs/reactos-ob-comparison.md §2.
Todo
Add an exclusive flag for mutable reference objects (branch HEADs, namespace entries). Non-exclusive objects — immutable snapshots, transactions — must skip contention checks entirely. See docs/reactos-ob-comparison.md §6.

Member Data Documentation

◆ disposable

bool nt::ObjectManager::object_type::disposable

True when the object is not durable.

For example: TRANSACTION.

◆ exclusive

bool nt::ObjectManager::object_type::exclusive = false

When true, only one write-mode handle may be open at a time.

Applies to mutable reference states such as branch HEADs. Immutable snapshot objects must leave this false.

Todo
Wire into LifecycleManager::Contention.

◆ methods

std::set<METHOD> nt::ObjectManager::object_type::methods

Methods supported by this object type.

Todo
Replace with typed callback function pointers. See class-level todo.

The documentation for this struct was generated from the following file: