/*
 * BEGIN FLOCK GPL
 *
 * Copyright Flock Inc. 2005-2009
 * http://flock.com
 *
 * This file may be used under the terms of the
 * GNU General Public License Version 2 or later (the "GPL"),
 * http://www.gnu.org/licenses/gpl.html
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * END FLOCK GPL
 */

#include "nsISupports.idl"
#include "nsIRDFDataSource.idl"

interface nsIArray;
interface flockIPQEnumerator;


[scriptable, uuid(9F566BCC-F722-4EFC-A76C-6260BBD70468)]
interface flockIAggregator : nsISupports {
  flockIPQEnumerator aggregateStreams(in nsIArray streams);

  flockIPQEnumerator aggregateFromNode(in nsIRDFDataSource aDataSource,
                                       in nsIRDFResource aContainer,
                                       in AString aFilter,
                                       in boolean groupByStatus,
                                       in boolean newFirst,
                                       in PRInt64 offset);
};

%{C++

#define FLOCK_AGGREGATOR_CID \
{ 0x9F566BCC, 0xF722, 0x4EFC, { 0xA7, 0x6C, 0x62, 0x60, 0xBB, 0xD7, 0x04, 0x68 } }

#define FLOCK_AGGREGATOR_CLASSNAME "Flock Aggregator"
#define FLOCK_AGGREGATOR_CONTRACTID "@flock.com/aggregator;1"


%}
