From edf5cdedd4d5faa93566063ad0470fc976a88073 Mon Sep 17 00:00:00 2001 From: "waterson%netscape.com" Date: Thu, 5 Aug 1999 04:33:41 +0000 Subject: [PATCH] Bug 9799. Implement nsIRDFRemoteDataSource so that datastore can be flushed to disk. git-svn-id: svn://10.0.0.236/trunk@42267 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/chrome/src/nsChromeRegistry.cpp | 62 ++++++++++++++++++--- mozilla/rdf/chrome/src/nsChromeRegistry.cpp | 62 ++++++++++++++++++--- 2 files changed, 108 insertions(+), 16 deletions(-) diff --git a/mozilla/chrome/src/nsChromeRegistry.cpp b/mozilla/chrome/src/nsChromeRegistry.cpp index bb652f9cfbb..6bf38b841e1 100644 --- a/mozilla/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/chrome/src/nsChromeRegistry.cpp @@ -65,7 +65,10 @@ void BreakProviderAndRemainingFromPath(const char* i_path, char** o_provider, ch //////////////////////////////////////////////////////////////////////////////// -class nsChromeRegistry : public nsIChromeRegistry, public nsIRDFDataSource { +class nsChromeRegistry : public nsIChromeRegistry, + public nsIRDFDataSource, + public nsIRDFRemoteDataSource +{ public: NS_DECL_ISUPPORTS @@ -130,6 +133,11 @@ public: nsIRDFResource* aCommand, nsISupportsArray/**/* aArguments) ; + // nsIRDFRemoteDataSource methods + NS_IMETHOD Init(const char* aURI); + NS_IMETHOD Refresh(PRBool aBlocking); + NS_IMETHOD Flush(); + // nsChromeRegistry methods: nsChromeRegistry(); virtual ~nsChromeRegistry(); @@ -218,19 +226,23 @@ nsChromeRegistry::QueryInterface(REFNSIID aIID, void** aResult) if (! aResult) return NS_ERROR_NULL_POINTER; - if (aIID.Equals(nsIChromeRegistry::GetIID()) || + if (aIID.Equals(nsCOMTypeInfo::GetIID()) || aIID.Equals(kISupportsIID)) { *aResult = NS_STATIC_CAST(nsIChromeRegistry*, this); - NS_ADDREF(this); - return NS_OK; } - if (aIID.Equals(kIRDFDataSourceIID)) { + else if (aIID.Equals(nsCOMTypeInfo::GetIID())) { *aResult = NS_STATIC_CAST(nsIRDFDataSource*, this); - NS_ADDREF(this); - return NS_OK; + } + else if (aIID.Equals(nsCOMTypeInfo::GetIID())) { + *aResult = NS_STATIC_CAST(nsIRDFRemoteDataSource*, this); + } + else { + *aResult = nsnull; + return NS_NOINTERFACE; } - return NS_NOINTERFACE; + NS_ADDREF(this); + return NS_OK; } //////////////////////////////////////////////////////////////////////////////// @@ -838,6 +850,40 @@ nsChromeRegistry::DoCommand(nsISupportsArray/**/* aSources, return mInner->DoCommand(aSources, aCommand, aArguments); } + +//////////////////////////////////////////////////////////////////////// +// nsIRDFRemoteDataSource methods + +NS_IMETHODIMP +nsChromeRegistry::Init(const char* aURI) +{ + return NS_OK; +} + + +NS_IMETHODIMP +nsChromeRegistry::Refresh(PRBool aBlocking) +{ + nsCOMPtr remote = do_QueryInterface(mInner); + if (! remote) + return NS_ERROR_UNEXPECTED; + + return remote->Refresh(aBlocking); +} + + +NS_IMETHODIMP +nsChromeRegistry::Flush() +{ + nsCOMPtr remote = do_QueryInterface(mInner); + if (! remote) + return NS_ERROR_UNEXPECTED; + + return remote->Flush(); +} + +//////////////////////////////////////////////////////////////////////// + // // Path = provider/remaining // diff --git a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp index bb652f9cfbb..6bf38b841e1 100644 --- a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp @@ -65,7 +65,10 @@ void BreakProviderAndRemainingFromPath(const char* i_path, char** o_provider, ch //////////////////////////////////////////////////////////////////////////////// -class nsChromeRegistry : public nsIChromeRegistry, public nsIRDFDataSource { +class nsChromeRegistry : public nsIChromeRegistry, + public nsIRDFDataSource, + public nsIRDFRemoteDataSource +{ public: NS_DECL_ISUPPORTS @@ -130,6 +133,11 @@ public: nsIRDFResource* aCommand, nsISupportsArray/**/* aArguments) ; + // nsIRDFRemoteDataSource methods + NS_IMETHOD Init(const char* aURI); + NS_IMETHOD Refresh(PRBool aBlocking); + NS_IMETHOD Flush(); + // nsChromeRegistry methods: nsChromeRegistry(); virtual ~nsChromeRegistry(); @@ -218,19 +226,23 @@ nsChromeRegistry::QueryInterface(REFNSIID aIID, void** aResult) if (! aResult) return NS_ERROR_NULL_POINTER; - if (aIID.Equals(nsIChromeRegistry::GetIID()) || + if (aIID.Equals(nsCOMTypeInfo::GetIID()) || aIID.Equals(kISupportsIID)) { *aResult = NS_STATIC_CAST(nsIChromeRegistry*, this); - NS_ADDREF(this); - return NS_OK; } - if (aIID.Equals(kIRDFDataSourceIID)) { + else if (aIID.Equals(nsCOMTypeInfo::GetIID())) { *aResult = NS_STATIC_CAST(nsIRDFDataSource*, this); - NS_ADDREF(this); - return NS_OK; + } + else if (aIID.Equals(nsCOMTypeInfo::GetIID())) { + *aResult = NS_STATIC_CAST(nsIRDFRemoteDataSource*, this); + } + else { + *aResult = nsnull; + return NS_NOINTERFACE; } - return NS_NOINTERFACE; + NS_ADDREF(this); + return NS_OK; } //////////////////////////////////////////////////////////////////////////////// @@ -838,6 +850,40 @@ nsChromeRegistry::DoCommand(nsISupportsArray/**/* aSources, return mInner->DoCommand(aSources, aCommand, aArguments); } + +//////////////////////////////////////////////////////////////////////// +// nsIRDFRemoteDataSource methods + +NS_IMETHODIMP +nsChromeRegistry::Init(const char* aURI) +{ + return NS_OK; +} + + +NS_IMETHODIMP +nsChromeRegistry::Refresh(PRBool aBlocking) +{ + nsCOMPtr remote = do_QueryInterface(mInner); + if (! remote) + return NS_ERROR_UNEXPECTED; + + return remote->Refresh(aBlocking); +} + + +NS_IMETHODIMP +nsChromeRegistry::Flush() +{ + nsCOMPtr remote = do_QueryInterface(mInner); + if (! remote) + return NS_ERROR_UNEXPECTED; + + return remote->Flush(); +} + +//////////////////////////////////////////////////////////////////////// + // // Path = provider/remaining //