2009-07-29 22:27:20 +00:00
|
|
|
#ifndef ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
|
|
|
|
#define ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
|
|
|
|
|
2011-09-06 00:16:03 -05:00
|
|
|
#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
|
2011-03-02 06:11:41 +00:00
|
|
|
#pragma once
|
|
|
|
|
#endif
|
|
|
|
|
|
2011-03-16 02:31:30 +00:00
|
|
|
#include "yaml-cpp/dll.h"
|
2011-03-03 00:19:26 +00:00
|
|
|
#include <memory>
|
2009-07-29 22:27:20 +00:00
|
|
|
|
2008-09-03 22:20:39 +00:00
|
|
|
namespace YAML
|
|
|
|
|
{
|
|
|
|
|
class Node;
|
|
|
|
|
struct IterPriv;
|
|
|
|
|
|
2011-03-16 02:31:30 +00:00
|
|
|
class YAML_CPP_API Iterator
|
2008-09-03 22:20:39 +00:00
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
Iterator();
|
2011-03-03 00:19:26 +00:00
|
|
|
Iterator(std::auto_ptr<IterPriv> pData);
|
2008-09-03 22:20:39 +00:00
|
|
|
Iterator(const Iterator& rhs);
|
|
|
|
|
~Iterator();
|
|
|
|
|
|
|
|
|
|
Iterator& operator = (const Iterator& rhs);
|
|
|
|
|
Iterator& operator ++ ();
|
|
|
|
|
Iterator operator ++ (int);
|
|
|
|
|
const Node& operator * () const;
|
|
|
|
|
const Node *operator -> () const;
|
|
|
|
|
const Node& first() const;
|
|
|
|
|
const Node& second() const;
|
|
|
|
|
|
2011-03-16 02:31:30 +00:00
|
|
|
friend YAML_CPP_API bool operator == (const Iterator& it, const Iterator& jt);
|
|
|
|
|
friend YAML_CPP_API bool operator != (const Iterator& it, const Iterator& jt);
|
2008-09-03 22:20:39 +00:00
|
|
|
|
|
|
|
|
private:
|
2011-03-03 00:19:26 +00:00
|
|
|
std::auto_ptr<IterPriv> m_pData;
|
2008-09-03 22:20:39 +00:00
|
|
|
};
|
|
|
|
|
}
|
2009-07-29 22:27:20 +00:00
|
|
|
|
|
|
|
|
#endif // ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|