#include "sequence.h" #include "yaml-cpp/eventhandler.h" #include "yaml-cpp/node.h" #include namespace YAML { Sequence::Sequence() { } Sequence::~Sequence() { Clear(); } void Sequence::Clear() { for(std::size_t i=0;i::const_iterator& it) const { it = m_data.begin(); return true; } bool Sequence::GetEnd(std::vector ::const_iterator& it) const { it = m_data.end(); return true; } Node *Sequence::GetNode(std::size_t i) const { if(i < m_data.size()) return m_data[i]; return 0; } std::size_t Sequence::GetSize() const { return m_data.size(); } void Sequence::Append(std::auto_ptr pNode) { m_data.push_back(pNode.release()); } void Sequence::EmitEvents(AliasManager& am, EventHandler& eventHandler, const Mark& mark, const std::string& tag, anchor_t anchor) const { eventHandler.OnSequenceStart(mark, tag, anchor); for(std::size_t i=0;iEmitEvents(am, eventHandler); eventHandler.OnSequenceEnd(); } int Sequence::Compare(Content *pContent) { return -pContent->Compare(this); } int Sequence::Compare(Sequence *pSeq) { std::size_t n = m_data.size(), m = pSeq->m_data.size(); if(n < m) return -1; else if(n > m) return 1; for(std::size_t i=0;iCompare(*pSeq->m_data[i]); if(cmp != 0) return cmp; } return 0; } }