chenluhua1980
2026-01-09 03dc81df7fe0ea0e754abcc5af3d329527428853
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// BufferRegistry.h
#pragma once
#include "BufferManager.h"
#include <unordered_map>
#include <memory>
#include <shared_mutex>
 
class BufferRegistry {
public:
    // »ñÈ¡/´´½¨Ä³Ì¨»úÆ÷µÄ BufferManager
    BufferManager& getOrCreate(uint32_t managerId, const std::string& name, const RetentionPolicy& defPolicy = {});
 
    // ²éѯ
    std::vector<uint32_t> listManagers() const;
    BufferManager* find(uint32_t managerId);
    const BufferManager* find(uint32_t managerId) const;
 
    // ÒƳýÒ»¸ö¹ÜÀíÆ÷£¨¿ÉÑ¡£©
    void remove(uint32_t managerId);
 
private:
    mutable std::shared_mutex mtx_;
    std::unordered_map<uint32_t, std::unique_ptr<BufferManager>> managers_;
};