Updated the node/value classes with the new iterators, they compile until we try to instantiate anything

This commit is contained in:
Jesse Beder
2011-09-10 14:11:42 -05:00
parent b1730ea3da
commit 4fdbb748ec
6 changed files with 36 additions and 33 deletions

View File

@@ -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<const node_ref&>(*m_pRef).begin(pMemory); }
iterator begin(shared_memory_holder pMemory) { return m_pRef->begin(pMemory); }
const_node_iterator begin() const { return static_cast<const node_ref&>(*m_pRef).begin(); }
node_iterator begin() { return m_pRef->begin(); }
const_iterator end(shared_memory_holder pMemory) const { return static_cast<const node_ref&>(*m_pRef).end(pMemory); }
iterator end(shared_memory_holder pMemory) { return m_pRef->end(pMemory); }
const_node_iterator end() const { return static_cast<const node_ref&>(*m_pRef).end(); }
node_iterator end() { return m_pRef->end(); }
// sequence
void append(node& node, shared_memory_holder pMemory) { m_pRef->append(node, pMemory); }

View File

@@ -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);

View File

@@ -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<const node_data&>(*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<const node_data&>(*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<const node_data&>(*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<const node_data&>(*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); }

View File

@@ -133,22 +133,22 @@ namespace YAML
inline const_iterator Value::begin() const
{
return static_cast<const detail::node&>(*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<const detail::node&>(*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

View File

@@ -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();
}
}

View File

@@ -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<std::string>() << " -> " << it->second.as<std::string>() << "\n";
}
return 0;
}