Backed out 10 changesets (bug 1803810) for xpcshell failures on test_import_global...
[gecko.git] / netwerk / streamconv / nsStreamConverterService.h
blob0d402c5657658793df3193ec1778d8feb290a224
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 __nsstreamconverterservice__h___
7 #define __nsstreamconverterservice__h___
9 #include "nsIStreamConverterService.h"
11 #include "nsClassHashtable.h"
12 #include "nsStringFwd.h"
13 #include "nsTArrayForwardDeclare.h"
15 class nsAtom;
17 class nsStreamConverterService : public nsIStreamConverterService {
18 public:
19 /////////////////////////////////////////////////////
20 // nsISupports methods
21 NS_DECL_ISUPPORTS
23 /////////////////////////////////////////////////////
24 // nsIStreamConverterService methods
25 NS_DECL_NSISTREAMCONVERTERSERVICE
27 /////////////////////////////////////////////////////
28 // nsStreamConverterService methods
29 nsStreamConverterService() = default;
31 private:
32 virtual ~nsStreamConverterService() = default;
34 // Responsible for finding a converter for the given MIME-type.
35 nsresult FindConverter(const char* aContractID,
36 nsTArray<nsCString>** aEdgeList);
37 nsresult BuildGraph(void);
38 nsresult AddAdjacency(const char* aContractID);
39 nsresult ParseFromTo(const char* aContractID, nsCString& aFromRes,
40 nsCString& aToRes);
42 // member variables
43 nsClassHashtable<nsCStringHashKey, nsTArray<RefPtr<nsAtom>>> mAdjacencyList;
46 #endif // __nsstreamconverterservice__h___