/*
 * 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"
#include "nsISimpleEnumerator.idl"

[scriptable, uuid(2347b515-0625-4730-87bd-d494400b8f8c)]
interface flockIStreamUtils : nsISupports {
  const PRInt32 STREAMS_UNSEEN  = 1;
  const PRInt32 STREAMS_SEEN    = 2;
  const PRInt32 STREAMS_STARRED = 4;

  nsISimpleEnumerator enumerateStreams(in nsIRDFDataSource aDataSource,
                                       in nsIRDFResource aResource,
                                       in boolean aEnumerateBackwards,
                                       in PRInt32 aParam);

/*
  void populateTest(in nsIRDFDataSource aDS);
  void runTest(in nsIRDFDataSource aDS);
*/
};

[scriptable, uuid(8ebb2191-ae33-4472-b16f-dab99aabe113)]
interface flockIStreamCountsPropagator : nsISupports {
  void syncCounts(in nsIRDFResource aResource);
};

%{C++

// a2d69996-8039-4291-b7be-a6f997002389
#define FLOCK_STREAMUTILS_CID \
{ 0xa2d69996, 0x8039, 0x4291, { 0xb7, 0xbe, 0xa6, 0xf9, 0x97, 0x00, 0x23, 0x89 } }
#define FLOCK_STREAMUTILS_CLASSNAME "Flock Stream Utils"
#define FLOCK_STREAMUTILS_CONTRACTID "@flock.com/stream-utils;1"

// 08091566-bd98-49f1-9e16-fc0465c15ce8
#define FLOCK_STREAMCOUNTSPROPAGATOR_CID \
{ 0x08091566, 0xbd98, 0x49f1, { 0x9e, 0x16, 0xfc, 0x04, 0x65, 0xc1, 0x5c, 0xe8 } }
#define FLOCK_STREAMCOUNTSPROPAGATOR_CLASSNAME "Flock Stream Counts Propagator"
#define FLOCK_STREAMCOUNTSPROPAGATOR_CONTRACTID "@flock.com/stream-counts-propagator;1"

%}
