From ecd21a0336db075ecd7ac8e26f5692e9649bc6a2 Mon Sep 17 00:00:00 2001 From: "warren%netscape.com" Date: Tue, 24 Aug 1999 04:54:56 +0000 Subject: [PATCH] Added -- supercedes nsIBuffer.h --- xpcom/io/nsIPipe.idl | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 xpcom/io/nsIPipe.idl diff --git a/xpcom/io/nsIPipe.idl b/xpcom/io/nsIPipe.idl new file mode 100644 index 000000000000..4e9e91386356 --- /dev/null +++ b/xpcom/io/nsIPipe.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include "nsISupports.idl" + +interface nsIPipe; +interface nsIAllocator; +interface nsIBufferInputStream; +interface nsIBufferOutputStream; + +[scriptable, uuid(686b2d98-56c2-11d3-8cd4-0060b0fc14a3)] +interface nsIPipeObserver : nsISupports { + void OnFull(in nsIPipe pipe); + void OnWrite(in nsIPipe pipe, + in unsigned long amount); + void OnEmpty(in nsIPipe pipe); +}; + +[scriptable, uuid(6c2c0146-56c2-11d3-8cd4-0060b0fc14a3)] +interface nsIPipe : nsISupports { + void Initialize(in unsigned long segmentSize, + in unsigned long maxSize, + in nsIPipeObserver observer, + in nsIAllocator segmentAllocator); + readonly attribute nsIBufferInputStream InputStream; + readonly attribute nsIBufferOutputStream OutputStream; + attribute nsIPipeObserver Observer; +}; + +%{C++ +#define NS_PIPE_DEFAULT_SEGMENT_SIZE 4096 +#define NS_PIPE_DEFAULT_BUFFER_SIZE (1024*1024) + +extern NS_COM nsresult +NS_NewPipe(nsIBufferInputStream* *inStrResult, + nsIBufferOutputStream* *outStrResult, + nsIPipeObserver* observer = nsnull, + PRUint32 segmentSize = NS_PIPE_DEFAULT_SEGMENT_SIZE, + PRUint32 maxSize = NS_PIPE_DEFAULT_BUFFER_SIZE); +%}