/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsSubscribeDataSource_h__ #define nsSubscribeDataSource_h__ #include "nsIRDFService.h" #include "nsIRDFDataSource.h" #include "nsIRDFResource.h" #include "nsIRDFLiteral.h" #include "nsCOMPtr.h" #include "nsISubscribableServer.h" #include "nsTObserverArray.h" /** * The subscribe data source. */ class nsSubscribeDataSource : public nsIRDFDataSource, public nsISubscribeDataSource { public: nsSubscribeDataSource(); nsresult Init(); NS_DECL_THREADSAFE_ISUPPORTS NS_DECL_NSIRDFDATASOURCE NS_DECL_NSISUBSCRIBEDATASOURCE private: virtual ~nsSubscribeDataSource(); nsCOMPtr kNC_Child; nsCOMPtr kNC_Name; nsCOMPtr kNC_LeafName; nsCOMPtr kNC_Subscribed; nsCOMPtr kNC_Subscribable; nsCOMPtr kNC_ServerType; nsCOMPtr kTrueLiteral; nsCOMPtr kFalseLiteral; nsCOMPtr mRDFService; nsTObserverArray > mObservers; nsresult GetServerAndRelativePathFromResource(nsIRDFResource *source, nsISubscribableServer **server, char **relativePath); nsresult GetServerType(nsISubscribableServer *server, nsACString& serverType); }; #endif /* nsSubscribedDataSource_h__ */