/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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/. */

#include "nsISupports.idl"

interface rdfIDataSource;
interface nsIOutputStream;

/**
 * Interface used to serialize RDF.
 *
 * @status PLASMA
 */

[scriptable, uuid(f0edfcdd-8bca-4d32-9226-7421001396a4)]
interface rdfISerializer : nsISupports
{
    /**
     * Synchronously serialize the given datasource to the outputstream.
     *
     * Implementations are not required to implement any buffering or
     * other stream-based optimizations.
     *
     * @param aDataSource The RDF data source to be serialized.
     * @param aOut The output stream to use.
     */
    void serialize(in rdfIDataSource aDataSource, in nsIOutputStream aOut);
};