diff -r 000000000000 -r 6474c204b198 content/xul/templates/src/nsXULTemplateQueryProcessorStorage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/xul/templates/src/nsXULTemplateQueryProcessorStorage.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,65 @@ +/* -*- 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 nsXULTemplateQueryProcessorStorage_h__ +#define nsXULTemplateQueryProcessorStorage_h__ + +#include "nsIXULTemplateBuilder.h" +#include "nsIXULTemplateQueryProcessor.h" + +#include "nsISimpleEnumerator.h" +#include "nsCOMArray.h" +#include "nsIVariant.h" + +#include "mozIStorageValueArray.h" +#include "mozIStorageStatement.h" +#include "mozIStorageConnection.h" +#include "mozilla/Attributes.h" + +class nsXULTemplateQueryProcessorStorage; + +class nsXULTemplateResultSetStorage MOZ_FINAL : public nsISimpleEnumerator +{ +private: + + nsCOMPtr mStatement; + + nsCOMArray mColumnNames; + +public: + + // nsISupports interface + NS_DECL_ISUPPORTS + + // nsISimpleEnumerator interface + NS_DECL_NSISIMPLEENUMERATOR + + nsXULTemplateResultSetStorage(mozIStorageStatement* aStatement); + + int32_t GetColumnIndex(nsIAtom* aColumnName); + + void FillColumnValues(nsCOMArray& aArray); + +}; + +class nsXULTemplateQueryProcessorStorage MOZ_FINAL : public nsIXULTemplateQueryProcessor +{ +public: + + nsXULTemplateQueryProcessorStorage(); + + // nsISupports interface + NS_DECL_ISUPPORTS + + // nsIXULTemplateQueryProcessor interface + NS_DECL_NSIXULTEMPLATEQUERYPROCESSOR + +private: + + nsCOMPtr mStorageConnection; + bool mGenerationStarted; +}; + +#endif // nsXULTemplateQueryProcessorStorage_h__