tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

txNodeSetContext.h (1090B)


      1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #ifndef __TX_XPATH_SET_CONTEXT
      7 #define __TX_XPATH_SET_CONTEXT
      8 
      9 #include "txIXPathContext.h"
     10 #include "txNodeSet.h"
     11 
     12 class txNodeSetContext : public txIEvalContext {
     13 public:
     14  txNodeSetContext(txNodeSet* aContextNodeSet, txIMatchContext* aContext)
     15      : mContextSet(aContextNodeSet), mPosition(0), mInner(aContext) {}
     16 
     17  // Iteration over the given NodeSet
     18  bool hasNext() { return mPosition < size(); }
     19  void next() {
     20    NS_ASSERTION(mPosition < size(), "Out of bounds.");
     21    mPosition++;
     22  }
     23  void setPosition(uint32_t aPosition) {
     24    NS_ASSERTION(aPosition > 0 && aPosition <= size(), "Out of bounds.");
     25    mPosition = aPosition;
     26  }
     27 
     28  TX_DECL_EVAL_CONTEXT;
     29 
     30 protected:
     31  RefPtr<txNodeSet> mContextSet;
     32  uint32_t mPosition;
     33  txIMatchContext* mInner;
     34 };
     35 
     36 #endif  // __TX_XPATH_SET_CONTEXT