Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/browser/components/dirprovider/DirectoryProvider.h
Line
Count
Source (jump to first uncovered line)
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5
#ifndef DirectoryProvider_h__
6
#define DirectoryProvider_h__
7
8
#include "nsIDirectoryService.h"
9
#include "nsComponentManagerUtils.h"
10
#include "nsIFile.h"
11
#include "nsSimpleEnumerator.h"
12
#include "mozilla/Attributes.h"
13
14
#define NS_BROWSERDIRECTORYPROVIDER_CONTRACTID \
15
  "@mozilla.org/browser/directory-provider;1"
16
17
namespace mozilla {
18
namespace browser {
19
20
class DirectoryProvider final : public nsIDirectoryServiceProvider2
21
{
22
public:
23
  NS_DECL_ISUPPORTS
24
  NS_DECL_NSIDIRECTORYSERVICEPROVIDER
25
  NS_DECL_NSIDIRECTORYSERVICEPROVIDER2
26
27
private:
28
0
  ~DirectoryProvider() {}
29
30
  class AppendingEnumerator final : public nsSimpleEnumerator
31
  {
32
  public:
33
    NS_DECL_NSISIMPLEENUMERATOR
34
35
    AppendingEnumerator(nsISimpleEnumerator* aBase,
36
                        char const *const *aAppendList);
37
38
  private:
39
0
    ~AppendingEnumerator() override = default;
40
41
    nsCOMPtr<nsISimpleEnumerator> mBase;
42
    char const *const *const      mAppendList;
43
    nsCOMPtr<nsIFile>             mNext;
44
  };
45
};
46
47
} // namespace browser
48
} // namespace mozilla
49
50
#endif // DirectoryProvider_h__