aboutsummaryrefslogtreecommitdiffstats
path: root/include/NamespaceReferenceManager.h
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
    {
    };
}