Bug 1848468 - Mark k-rate-dynamics-compressor-connections.html subtest as failing...
[gecko.git] / dom / filesystem / GetDirectoryListingTask.h
blobafb5296ac54e06b708912d75933aac91edd70de4
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef mozilla_dom_GetDirectoryListing_h
8 #define mozilla_dom_GetDirectoryListing_h
10 #include "mozilla/dom/Directory.h"
11 #include "mozilla/dom/FileSystemTaskBase.h"
13 namespace mozilla {
14 class ErrorResult;
16 namespace dom {
18 class BlobImpl;
19 class FileSystemGetDirectoryListingParams;
20 class OwningFileOrDirectory;
22 class GetDirectoryListingTaskChild final : public FileSystemTaskChildBase {
23 public:
24 static already_AddRefed<GetDirectoryListingTaskChild> Create(
25 FileSystemBase* aFileSystem, Directory* aDirectory, nsIFile* aTargetPath,
26 const nsAString& aFilters, ErrorResult& aRv);
28 virtual ~GetDirectoryListingTaskChild();
30 already_AddRefed<Promise> GetPromise();
32 private:
33 // If aDirectoryOnly is set, we should ensure that the target is a directory.
34 GetDirectoryListingTaskChild(nsIGlobalObject* aGlobalObject,
35 FileSystemBase* aFileSystem,
36 Directory* aDirectory, nsIFile* aTargetPath,
37 const nsAString& aFilters);
39 virtual FileSystemParams GetRequestParams(const nsString& aSerializedDOMPath,
40 ErrorResult& aRv) const override;
42 virtual void SetSuccessRequestResult(const FileSystemResponseValue& aValue,
43 ErrorResult& aRv) override;
45 virtual void HandlerCallback() override;
47 RefPtr<Promise> mPromise;
48 RefPtr<Directory> mDirectory;
49 nsCOMPtr<nsIFile> mTargetPath;
50 nsString mFilters;
52 FallibleTArray<OwningFileOrDirectory> mTargetData;
55 class GetDirectoryListingTaskParent final : public FileSystemTaskParentBase {
56 public:
57 static already_AddRefed<GetDirectoryListingTaskParent> Create(
58 FileSystemBase* aFileSystem,
59 const FileSystemGetDirectoryListingParams& aParam,
60 FileSystemRequestParent* aParent, ErrorResult& aRv);
62 nsresult GetTargetPath(nsAString& aPath) const override;
64 private:
65 GetDirectoryListingTaskParent(
66 FileSystemBase* aFileSystem,
67 const FileSystemGetDirectoryListingParams& aParam,
68 FileSystemRequestParent* aParent);
70 virtual FileSystemResponseValue GetSuccessRequestResult(
71 ErrorResult& aRv) const override;
73 virtual nsresult IOWork() override;
75 nsCOMPtr<nsIFile> mTargetPath;
76 nsString mDOMPath;
77 nsString mFilters;
79 struct FileOrDirectoryPath {
80 nsString mPath;
82 enum { eFilePath, eDirectoryPath } mType;
85 FallibleTArray<FileOrDirectoryPath> mTargetData;
88 } // namespace dom
89 } // namespace mozilla
91 #endif // mozilla_dom_GetDirectoryListing_h