Bug 1935611 - Fix libyuv/libpng link failed for loongarch64. r=glandium,tnikkel,ng
[gecko.git] / dom / xslt / xpath / txNodeSetContext.h
blob86cb14ab958ff6ccb5bb92bf3b4d461f174e8489
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/. */
6 #ifndef __TX_XPATH_SET_CONTEXT
7 #define __TX_XPATH_SET_CONTEXT
9 #include "txIXPathContext.h"
10 #include "txNodeSet.h"
12 class txNodeSetContext : public txIEvalContext {
13 public:
14 txNodeSetContext(txNodeSet* aContextNodeSet, txIMatchContext* aContext)
15 : mContextSet(aContextNodeSet), mPosition(0), mInner(aContext) {}
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++;
23 void setPosition(uint32_t aPosition) {
24 NS_ASSERTION(aPosition > 0 && aPosition <= size(), "Out of bounds.");
25 mPosition = aPosition;
28 TX_DECL_EVAL_CONTEXT;
30 protected:
31 RefPtr<txNodeSet> mContextSet;
32 uint32_t mPosition;
33 txIMatchContext* mInner;
36 #endif // __TX_XPATH_SET_CONTEXT