|
VLink 2.0.0
A high-performance communication middleware
|
Topic-keyed factory and multi-implementation callback registry for VLink nodes. 更多...
#include <algorithm>#include <atomic>#include <map>#include <memory>#include <mutex>#include <string>#include <unordered_map>#include <unordered_set>#include <utility>#include "../base/logger.h"#include "./node_impl.h"类 | |
| class | vlink::AbstractObject< FilterT > |
Per-topic registry of NodeImpl instances and their associated callbacks. 更多... | |
| class | vlink::AbstractFactory< FilterT > |
Topic-keyed factory that creates and caches AbstractObject instances. 更多... | |
命名空间 | |
| namespace | vlink |
Topic-keyed factory and multi-implementation callback registry for VLink nodes.
This header provides two cooperating templates used internally by every VLink node type (Publisher, Subscriber, Client, Server, Setter, Getter) to multiplex callbacks across multiple concurrent transport implementations sharing the same logical topic:
NodeImpl* instances registered on this topic.std::recursive_mutex, with early-exit support via ignore_called().FilterT (typically std::string topic name) that creates and caches AbstractObject<FilterT> instances. Objects are stored as std::weak_ptr so they are automatically destroyed when no NodeImpl holds a reference.AbstractObject are thread-safe; they acquire the internal std::recursive_mutex before modifying or reading state.| FilterT | The key type used to look up objects in the factory (e.g. std::string for topic URLs). |