nsStreamConverterService.h (1538B)
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 "nsStringFwd.h" 13 #include "nsTArrayForwardDeclare.h" 14 15 class nsAtom; 16 17 class nsStreamConverterService : public nsIStreamConverterService { 18 public: 19 ///////////////////////////////////////////////////// 20 // nsISupports methods 21 NS_DECL_ISUPPORTS 22 23 ///////////////////////////////////////////////////// 24 // nsIStreamConverterService methods 25 NS_DECL_NSISTREAMCONVERTERSERVICE 26 27 ///////////////////////////////////////////////////// 28 // nsStreamConverterService methods 29 nsStreamConverterService() = default; 30 31 private: 32 virtual ~nsStreamConverterService() = default; 33 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); 41 42 // member variables 43 nsClassHashtable<nsCStringHashKey, nsTArray<RefPtr<nsAtom>>> mAdjacencyList; 44 }; 45 46 #endif // __nsstreamconverterservice__h___