Line data Source code
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/. */
5 :
6 : #ifndef __nsstreamconverterservice__h___
7 : #define __nsstreamconverterservice__h___
8 :
9 : #include "nsIStreamConverterService.h"
10 :
11 : #include "nsClassHashtable.h"
12 : #include "nsCOMArray.h"
13 : #include "nsTArrayForwardDeclare.h"
14 :
15 : class nsCString;
16 : class nsIAtom;
17 :
18 0 : class nsStreamConverterService : public nsIStreamConverterService {
19 : public:
20 : /////////////////////////////////////////////////////
21 : // nsISupports methods
22 : NS_DECL_ISUPPORTS
23 :
24 :
25 : /////////////////////////////////////////////////////
26 : // nsIStreamConverterService methods
27 : NS_DECL_NSISTREAMCONVERTERSERVICE
28 :
29 : /////////////////////////////////////////////////////
30 : // nsStreamConverterService methods
31 : nsStreamConverterService();
32 :
33 : private:
34 : virtual ~nsStreamConverterService();
35 :
36 : // Responsible for finding a converter for the given MIME-type.
37 : nsresult FindConverter(const char *aContractID, nsTArray<nsCString> **aEdgeList);
38 : nsresult BuildGraph(void);
39 : nsresult AddAdjacency(const char *aContractID);
40 : nsresult ParseFromTo(const char *aContractID, nsCString &aFromRes, nsCString &aToRes);
41 :
42 : // member variables
43 : nsClassHashtable<nsCStringHashKey, nsCOMArray<nsIAtom>> mAdjacencyList;
44 : };
45 :
46 : #endif // __nsstreamconverterservice__h___
|