Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
michael@0 | 2 | /* This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 3 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 4 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 5 | |
michael@0 | 6 | #ifndef nsRDFResource_h__ |
michael@0 | 7 | #define nsRDFResource_h__ |
michael@0 | 8 | |
michael@0 | 9 | #include "nsCOMPtr.h" |
michael@0 | 10 | #include "nsIRDFNode.h" |
michael@0 | 11 | #include "nsIRDFResource.h" |
michael@0 | 12 | #include "nscore.h" |
michael@0 | 13 | #include "nsStringGlue.h" |
michael@0 | 14 | #include "rdf.h" |
michael@0 | 15 | |
michael@0 | 16 | class nsIRDFService; |
michael@0 | 17 | |
michael@0 | 18 | /** |
michael@0 | 19 | * This simple base class implements nsIRDFResource, and can be used as a |
michael@0 | 20 | * superclass for more sophisticated resource implementations. |
michael@0 | 21 | */ |
michael@0 | 22 | class nsRDFResource : public nsIRDFResource { |
michael@0 | 23 | public: |
michael@0 | 24 | |
michael@0 | 25 | NS_DECL_THREADSAFE_ISUPPORTS |
michael@0 | 26 | |
michael@0 | 27 | // nsIRDFNode methods: |
michael@0 | 28 | NS_IMETHOD EqualsNode(nsIRDFNode* aNode, bool* aResult); |
michael@0 | 29 | |
michael@0 | 30 | // nsIRDFResource methods: |
michael@0 | 31 | NS_IMETHOD Init(const char* aURI); |
michael@0 | 32 | NS_IMETHOD GetValue(char* *aURI); |
michael@0 | 33 | NS_IMETHOD GetValueUTF8(nsACString& aResult); |
michael@0 | 34 | NS_IMETHOD GetValueConst(const char** aURI); |
michael@0 | 35 | NS_IMETHOD EqualsString(const char* aURI, bool* aResult); |
michael@0 | 36 | NS_IMETHOD GetDelegate(const char* aKey, REFNSIID aIID, void** aResult); |
michael@0 | 37 | NS_IMETHOD ReleaseDelegate(const char* aKey); |
michael@0 | 38 | |
michael@0 | 39 | // nsRDFResource methods: |
michael@0 | 40 | nsRDFResource(void); |
michael@0 | 41 | virtual ~nsRDFResource(void); |
michael@0 | 42 | |
michael@0 | 43 | protected: |
michael@0 | 44 | static nsIRDFService* gRDFService; |
michael@0 | 45 | static nsrefcnt gRDFServiceRefCnt; |
michael@0 | 46 | |
michael@0 | 47 | protected: |
michael@0 | 48 | nsCString mURI; |
michael@0 | 49 | |
michael@0 | 50 | struct DelegateEntry { |
michael@0 | 51 | nsCString mKey; |
michael@0 | 52 | nsCOMPtr<nsISupports> mDelegate; |
michael@0 | 53 | DelegateEntry* mNext; |
michael@0 | 54 | }; |
michael@0 | 55 | |
michael@0 | 56 | DelegateEntry* mDelegates; |
michael@0 | 57 | }; |
michael@0 | 58 | |
michael@0 | 59 | #endif // nsRDFResource_h__ |