aboutsummaryrefslogblamecommitdiffstats
path: root/include/NamespaceReferenceManager.h
blob: 59068f7ff07eee3ee128da30ae52a475fcfe66d7 (plain) (tree)
1
2
3
4
5
6
7
8
9



                




                                                                     

            

                                       

                                                                                     









                                                                               
      


                                                                              
       



                                          
#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
    {
    };
}