GrownKeyPath.h
1 #pragma once
2 #include "HIOUtilityHTML.h"
3 #include "DownwardStack.h"
4 
5 namespace hio_html_internal
6 {
8  {
9  public:
10  explicit GrownKeyPath(KeyArray const & keyPath);
11 
12  void Push(HC_KEY segKey);
13  void Pop();
14  HC_KEY const & Peek() const;
15 
16  KeyArray const & KeyPath() const;
17  KeyArray const * operator-> () const;
18 
19  size_t FullSize() const;
20  size_t GrownSize() const;
21  bool ContainsGrownIncludes() const;
22 
23  bool operator== (GrownKeyPath const & other) const;
24 
25  private:
26  void PushGeneric(HC_KEY key);
27 
28  DownwardStack<HC_KEY> keyPathStack;
29  DownwardStack<const char *> keyTypeStack;
30  size_t grownSize;
31  size_t grownIncludeCount;
32 
33  mutable KeyArray cachedKeyPath;
34  mutable bool cachedKeyPathValidity;
35  };
36 }
Definition: GrownKeyPath.h:7
Definition: GrownKeyPath.h:5