summaryrefslogtreecommitdiffstats
path: root/dom/xul/templates/nsXULTemplateResultSetRDF.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/xul/templates/nsXULTemplateResultSetRDF.h')
-rw-r--r--dom/xul/templates/nsXULTemplateResultSetRDF.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/dom/xul/templates/nsXULTemplateResultSetRDF.h b/dom/xul/templates/nsXULTemplateResultSetRDF.h
new file mode 100644
index 000000000..76aa28774
--- /dev/null
+++ b/dom/xul/templates/nsXULTemplateResultSetRDF.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsXULTemplateResultSetRDF_h__
+#define nsXULTemplateResultSetRDF_h__
+
+#include "nsISimpleEnumerator.h"
+#include "nsRuleNetwork.h"
+#include "nsRDFQuery.h"
+#include "nsXULTemplateResultRDF.h"
+#include "mozilla/Attributes.h"
+
+class nsXULTemplateQueryProcessorRDF;
+class nsXULTemplateResultRDF;
+
+/**
+ * An enumerator used to iterate over a set of results.
+ */
+class nsXULTemplateResultSetRDF final : public nsISimpleEnumerator
+{
+private:
+ nsXULTemplateQueryProcessorRDF* mProcessor;
+
+ nsRDFQuery* mQuery;
+
+ const InstantiationSet* mInstantiations;
+
+ nsCOMPtr<nsIRDFResource> mResource;
+
+ InstantiationSet::List *mCurrent;
+
+ bool mCheckedNext;
+
+ ~nsXULTemplateResultSetRDF()
+ {
+ delete mInstantiations;
+ }
+
+public:
+
+ // nsISupports interface
+ NS_DECL_ISUPPORTS
+
+ // nsISimpleEnumerator interface
+ NS_DECL_NSISIMPLEENUMERATOR
+
+ nsXULTemplateResultSetRDF(nsXULTemplateQueryProcessorRDF *aProcessor,
+ nsRDFQuery* aQuery,
+ const InstantiationSet* aInstantiations)
+ : mProcessor(aProcessor),
+ mQuery(aQuery),
+ mInstantiations(aInstantiations),
+ mCurrent(nullptr),
+ mCheckedNext(false)
+ { }
+};
+
+#endif // nsXULTemplateResultSetRDF_h__