MCPcopy Create free account
hub / github.com/comaps/comaps / Pop

Method Pop

generator/osm_xml_source.hpp:71–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69 }
70
71 void Pop(StringPtrT)
72 {
73 switch (--m_depth)
74 {
75 case 0: break;
76
77 case 1:
78 // Skip useless tags. See XMLSource::Push function above.
79 if (m_current->m_type != OsmElement::EntityType::Bounds)
80 {
81 ASSERT_EQUAL(m_current, &m_parent, ());
82 m_emitter(std::move(m_parent));
83 }
84 m_parent.Clear();
85 break;
86
87 default:
88 switch (m_child.m_type)
89 {
90 case OsmElement::EntityType::Member:
91 m_parent.AddMember(m_child.m_ref, m_child.m_memberType, m_child.m_role);
92 break;
93 case OsmElement::EntityType::Tag: m_parent.AddTag(m_child.m_k, m_child.m_v); break;
94 case OsmElement::EntityType::Nd: m_parent.AddNd(m_child.m_ref); break;
95 default: break;
96 }
97 m_current = &m_parent;
98 m_child.Clear();
99 }
100 }
101
102private:
103 OsmElement m_parent;

Callers

nothing calls this directly

Calls 4

AddMemberMethod · 0.80
AddNdMethod · 0.80
ClearMethod · 0.45
AddTagMethod · 0.45

Tested by

no test coverage detected