From 89f87d855ddd74c4c39509261c511634443834e4 Mon Sep 17 00:00:00 2001 From: beder Date: Sat, 10 Sep 2011 14:11:42 -0500 Subject: [PATCH] Updated the node/value classes with the new iterators, they compile until we try to instantiate anything --- include/yaml-cpp/value/detail/node.h | 8 +++--- include/yaml-cpp/value/detail/node_data.h | 8 +++--- include/yaml-cpp/value/detail/node_ref.h | 8 +++--- include/yaml-cpp/value/impl.h | 8 +++--- src/value/detail/node_data.cpp | 32 +++++++++++------------ util/value.cpp | 5 +++- 6 files changed, 36 insertions(+), 33 deletions(-) diff --git a/include/yaml-cpp/value/detail/node.h b/include/yaml-cpp/value/detail/node.h index f56ab1c..554a1a0 100644 --- a/include/yaml-cpp/value/detail/node.h +++ b/include/yaml-cpp/value/detail/node.h @@ -38,11 +38,11 @@ namespace YAML // size/iterator std::size_t size() const { return m_pRef->size(); } - const_iterator begin(shared_memory_holder pMemory) const { return static_cast(*m_pRef).begin(pMemory); } - iterator begin(shared_memory_holder pMemory) { return m_pRef->begin(pMemory); } + const_node_iterator begin() const { return static_cast(*m_pRef).begin(); } + node_iterator begin() { return m_pRef->begin(); } - const_iterator end(shared_memory_holder pMemory) const { return static_cast(*m_pRef).end(pMemory); } - iterator end(shared_memory_holder pMemory) { return m_pRef->end(pMemory); } + const_node_iterator end() const { return static_cast(*m_pRef).end(); } + node_iterator end() { return m_pRef->end(); } // sequence void append(node& node, shared_memory_holder pMemory) { m_pRef->append(node, pMemory); } diff --git a/include/yaml-cpp/value/detail/node_data.h b/include/yaml-cpp/value/detail/node_data.h index 8944cdb..938ce04 100644 --- a/include/yaml-cpp/value/detail/node_data.h +++ b/include/yaml-cpp/value/detail/node_data.h @@ -34,11 +34,11 @@ namespace YAML // size/iterator std::size_t size() const; - const_iterator begin(shared_memory_holder pMemory) const; - iterator begin(shared_memory_holder pMemory); + const_node_iterator begin() const; + node_iterator begin(); - const_iterator end(shared_memory_holder pMemory) const; - iterator end(shared_memory_holder pMemory); + const_node_iterator end() const; + node_iterator end(); // sequence void append(node& node, shared_memory_holder pMemory); diff --git a/include/yaml-cpp/value/detail/node_ref.h b/include/yaml-cpp/value/detail/node_ref.h index 7b2cb98..cf9c077 100644 --- a/include/yaml-cpp/value/detail/node_ref.h +++ b/include/yaml-cpp/value/detail/node_ref.h @@ -33,11 +33,11 @@ namespace YAML // size/iterator std::size_t size() const { return m_pData ? m_pData->size() : 0; } - const_iterator begin(shared_memory_holder pMemory) const { return m_pData ? static_cast(*m_pData).begin(pMemory) : const_iterator(); } - iterator begin(shared_memory_holder pMemory) {return m_pData ? m_pData->begin(pMemory) : iterator(); } + const_node_iterator begin() const { return m_pData ? static_cast(*m_pData).begin() : const_node_iterator(); } + node_iterator begin() {return m_pData ? m_pData->begin() : node_iterator(); } - const_iterator end(shared_memory_holder pMemory) const { return m_pData ? static_cast(*m_pData).end(pMemory) : const_iterator(); } - iterator end(shared_memory_holder pMemory) {return m_pData ? m_pData->end(pMemory) : iterator(); } + const_node_iterator end() const { return m_pData ? static_cast(*m_pData).end() : const_node_iterator(); } + node_iterator end() {return m_pData ? m_pData->end() : node_iterator(); } // sequence void append(node& node, shared_memory_holder pMemory) { ensure_data_exists(); m_pData->append(node, pMemory); } diff --git a/include/yaml-cpp/value/impl.h b/include/yaml-cpp/value/impl.h index 336fef1..81dcd80 100644 --- a/include/yaml-cpp/value/impl.h +++ b/include/yaml-cpp/value/impl.h @@ -133,22 +133,22 @@ namespace YAML inline const_iterator Value::begin() const { - return static_cast(*m_pNode).begin(m_pMemory); + return const_iterator(m_pNode->begin(), m_pMemory); } inline iterator Value::begin() { - return m_pNode->begin(m_pMemory); + return iterator(m_pNode->begin(), m_pMemory); } inline const_iterator Value::end() const { - return static_cast(*m_pNode).end(m_pMemory); + return const_iterator(m_pNode->end(), m_pMemory); } inline iterator Value::end() { - return m_pNode->end(m_pMemory); + return iterator(m_pNode->end(), m_pMemory); } // sequence diff --git a/src/value/detail/node_data.cpp b/src/value/detail/node_data.cpp index f851353..61b2e1c 100644 --- a/src/value/detail/node_data.cpp +++ b/src/value/detail/node_data.cpp @@ -66,39 +66,39 @@ namespace YAML return 0; } - const_iterator node_data::begin(shared_memory_holder pMemory) const + const_node_iterator node_data::begin() const { switch(m_type) { - case ValueType::Sequence: return const_iterator(pMemory, m_sequence.begin()); - case ValueType::Map: return const_iterator(pMemory, m_map.begin()); - default: return const_iterator(); + case ValueType::Sequence: return const_node_iterator(m_sequence.begin()); + case ValueType::Map: return const_node_iterator(m_map.begin()); + default: return const_node_iterator(); } } - iterator node_data::begin(shared_memory_holder pMemory) + node_iterator node_data::begin() { switch(m_type) { - case ValueType::Sequence: return iterator(pMemory, m_sequence.begin()); - case ValueType::Map: return iterator(pMemory, m_map.begin()); - default: return iterator(); + case ValueType::Sequence: return node_iterator(m_sequence.begin()); + case ValueType::Map: return node_iterator(m_map.begin()); + default: return node_iterator(); } } - const_iterator node_data::end(shared_memory_holder pMemory) const + const_node_iterator node_data::end() const { switch(m_type) { - case ValueType::Sequence: return const_iterator(pMemory, m_sequence.end()); - case ValueType::Map: return const_iterator(pMemory, m_map.end()); - default: return const_iterator(); + case ValueType::Sequence: return const_node_iterator(m_sequence.end()); + case ValueType::Map: return const_node_iterator(m_map.end()); + default: return const_node_iterator(); } } - iterator node_data::end(shared_memory_holder pMemory) + node_iterator node_data::end() { switch(m_type) { - case ValueType::Sequence: return iterator(pMemory, m_sequence.end()); - case ValueType::Map: return iterator(pMemory, m_map.end()); - default: return iterator(); + case ValueType::Sequence: return node_iterator(m_sequence.end()); + case ValueType::Map: return node_iterator(m_map.end()); + default: return node_iterator(); } } diff --git a/util/value.cpp b/util/value.cpp index e8075bd..f5a1307 100644 --- a/util/value.cpp +++ b/util/value.cpp @@ -3,7 +3,10 @@ int main() { - YAML::Value value = YAML::Parse("foo: bar"); + YAML::Value value = YAML::Parse("{foo: bar, monkey: value}"); + for(YAML::const_iterator it=value.begin();it!=value.end();++it) { + std::cout << it->first.as() << " -> " << it->second.as() << "\n"; + } return 0; }