blob: 59068f7ff07eee3ee128da30ae52a475fcfe66d7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#pragma once
#include "Api.h"
/**
* @file NamespaceReferenceManager.h
* @brief Declares logical reference mapping and namespace isolation.
*/
namespace nt
{
/**
* @class NamespaceReferenceManager
* @brief Handles the logical mapping and isolation of human-readable references.
*
* Design notes:
* - Namespace isolation: allow private branch shadowing, such as
* /user_a/refs/branch/abc. To preserve lookup clarity, protocol-level
* syntax must explicitly define scope and prevent non-deterministic
* shadowing during resolution.
*
* - Multi-reference atomic updates: ensure updates to multiple references,
* such as pushing to master and audit_log simultaneously, are
* all-or-nothing. If any contention check fails, the whole batch is
* aborted to prevent partial commits and preserve audit consistency.
*
* Audit needs global access, which means it should be dissociated from a
* branch scope. Since branches are the only contention points for
* references, it makes sense to model audit as an independent branch too.
*/
class NT_API NamespaceReferenceManager
{
};
}
|