1 #ifndef NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 #define NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66 4 #if defined(_MSC_VER) || \ 5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 13 #include "yaml-cpp/anchor.h" 14 #include "yaml-cpp/node/ptr.h" 28 explicit NodeEvents(
const Node& node);
29 NodeEvents(
const NodeEvents&) =
delete;
30 NodeEvents(NodeEvents&&) =
delete;
31 NodeEvents& operator=(
const NodeEvents&) =
delete;
32 NodeEvents& operator=(NodeEvents&&) =
delete;
34 void Emit(EventHandler& handler);
39 AliasManager() : m_anchorByIdentity{}, m_curAnchor(0) {}
41 void RegisterReference(
const detail::node& node);
42 anchor_t LookupAnchor(
const detail::node& node)
const;
45 anchor_t _CreateNewAnchor() {
return ++m_curAnchor; }
48 using AnchorByIdentity = std::map<const detail::node_ref*, anchor_t>;
49 AnchorByIdentity m_anchorByIdentity;
54 void Setup(
const detail::node& node);
55 void Emit(
const detail::node& node, EventHandler& handler,
56 AliasManager& am)
const;
57 bool IsAliased(
const detail::node& node)
const;
60 detail::shared_memory_holder m_pMemory;
63 using RefCount = std::map<const detail::node_ref*, int>;
68 #endif // NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66