1 #ifndef NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM 2 #define NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM 4 #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 43 std::auto_ptr<Node> Clone()
const;
48 bool IsAliased()
const;
56 std::size_t size()
const;
73 const Node *FindValue(
const T& key)
const;
76 const Node& operator [] (
const T& key)
const;
79 const Node *FindValue(
const char *key)
const;
80 const Node *FindValue(
char *key)
const;
81 const Node& operator [] (
const char *key)
const;
82 const Node& operator [] (
char *key)
const;
91 int Compare(
const Node& rhs)
const;
100 void MarkAsAliased();
102 void Append(
Node& node);
103 void Insert(
Node& key,
Node& value);
107 const Node *FindAtIndex(std::size_t i)
const;
110 template <
typename T>
111 const Node& GetValue(
const T& key)
const;
113 template <
typename T>
114 const Node *FindValueForKey(
const T& key)
const;
135 #endif // NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
std::map< Node *, Node *, ltnode > node_map
bool operator<(const Node &n1, const Node &n2)
Emitter & operator<<(Emitter &emitter, const std::string &v)
const Mark GetMark() const
int Read(int fd, void *buf, unsigned int count)
void operator>>(const Node &node, Binary &binary)
NodeType::value Type() const
const std::string & Tag() const
std::vector< Node * > node_seq
std::auto_ptr< NodeOwnership > m_pOwnership