michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* michael@0: michael@0: An RDF-specific content sink. The content sink is targeted by the michael@0: parser for building the RDF content model. michael@0: michael@0: */ michael@0: michael@0: #ifndef nsIRDFContentSink_h___ michael@0: #define nsIRDFContentSink_h___ michael@0: michael@0: #include "nsIXMLContentSink.h" michael@0: class nsIRDFDataSource; michael@0: class nsIURI; michael@0: michael@0: // {3a7459d7-d723-483c-aef0-404fc48e09b8} michael@0: #define NS_IRDFCONTENTSINK_IID \ michael@0: { 0x3a7459d7, 0xd723, 0x483c, { 0xae, 0xf0, 0x40, 0x4f, 0xc4, 0x8e, 0x09, 0xb8 } } michael@0: michael@0: /** michael@0: * This interface represents a content sink for RDF files. michael@0: */ michael@0: michael@0: class nsIRDFContentSink : public nsIXMLContentSink { michael@0: public: michael@0: NS_DECLARE_STATIC_IID_ACCESSOR(NS_IRDFCONTENTSINK_IID) michael@0: michael@0: /** michael@0: * Initialize the content sink. michael@0: */ michael@0: NS_IMETHOD Init(nsIURI* aURL) = 0; michael@0: michael@0: /** michael@0: * Set the content sink's RDF Data source michael@0: */ michael@0: NS_IMETHOD SetDataSource(nsIRDFDataSource* aDataSource) = 0; michael@0: michael@0: /** michael@0: * Retrieve the content sink's RDF data source. michael@0: */ michael@0: NS_IMETHOD GetDataSource(nsIRDFDataSource*& rDataSource) = 0; michael@0: }; michael@0: michael@0: NS_DEFINE_STATIC_IID_ACCESSOR(nsIRDFContentSink, NS_IRDFCONTENTSINK_IID) michael@0: michael@0: /** michael@0: * This constructs a content sink that can be used without a michael@0: * document, say, to create a stand-alone in-memory graph. michael@0: */ michael@0: nsresult michael@0: NS_NewRDFContentSink(nsIRDFContentSink** aResult); michael@0: michael@0: #endif // nsIRDFContentSink_h___