blob: be3f20d9d8e3fa0e6e1063948215150126432405 [file] [log] [blame]
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM e:/builds/tinderbox/XR-Trunk/WINNT_5.2_Depend/mozilla/xpcom/io/nsIBinaryOutputStream.idl
*/
#ifndef __gen_nsIBinaryOutputStream_h__
#define __gen_nsIBinaryOutputStream_h__
#ifndef __gen_nsIOutputStream_h__
#include "nsIOutputStream.h"
#endif
#ifndef __gen_nsrootidl_h__
#include "nsrootidl.h"
#endif
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: nsIBinaryOutputStream */
#define NS_IBINARYOUTPUTSTREAM_IID_STR "204ee610-8765-11d3-90cf-0040056a906e"
#define NS_IBINARYOUTPUTSTREAM_IID \
{0x204ee610, 0x8765, 0x11d3, \
{ 0x90, 0xcf, 0x00, 0x40, 0x05, 0x6a, 0x90, 0x6e }}
/**
* This interface allows writing of primitive data types (integers,
* floating-point values, booleans, etc.) to a stream in a binary, untagged,
* fixed-endianness format. This might be used, for example, to implement
* network protocols or to produce architecture-neutral binary disk files,
* i.e. ones that can be read and written by both big-endian and little-endian
* platforms. Output is written in big-endian order (high-order byte first),
* as this is traditional network order.
*
* @See nsIBinaryInputStream
*/
class NS_NO_VTABLE NS_SCRIPTABLE nsIBinaryOutputStream : public nsIOutputStream {
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IBINARYOUTPUTSTREAM_IID)
/* void setOutputStream (in nsIOutputStream aOutputStream); */
NS_SCRIPTABLE NS_IMETHOD SetOutputStream(nsIOutputStream *aOutputStream) = 0;
/**
* Write a boolean as an 8-bit char to the stream.
*/
/* void writeBoolean (in PRBool aBoolean); */
NS_SCRIPTABLE NS_IMETHOD WriteBoolean(PRBool aBoolean) = 0;
/* void write8 (in PRUint8 aByte); */
NS_SCRIPTABLE NS_IMETHOD Write8(PRUint8 aByte) = 0;
/* void write16 (in PRUint16 a16); */
NS_SCRIPTABLE NS_IMETHOD Write16(PRUint16 a16) = 0;
/* void write32 (in PRUint32 a32); */
NS_SCRIPTABLE NS_IMETHOD Write32(PRUint32 a32) = 0;
/* void write64 (in PRUint64 a64); */
NS_SCRIPTABLE NS_IMETHOD Write64(PRUint64 a64) = 0;
/* void writeFloat (in float aFloat); */
NS_SCRIPTABLE NS_IMETHOD WriteFloat(float aFloat) = 0;
/* void writeDouble (in double aDouble); */
NS_SCRIPTABLE NS_IMETHOD WriteDouble(double aDouble) = 0;
/**
* Write an 8-bit pascal style string to the stream.
* 32-bit length field, followed by length 8-bit chars.
*/
/* void writeStringZ (in string aString); */
NS_SCRIPTABLE NS_IMETHOD WriteStringZ(const char *aString) = 0;
/**
* Write a 16-bit pascal style string to the stream.
* 32-bit length field, followed by length PRUnichars.
*/
/* void writeWStringZ (in wstring aString); */
NS_SCRIPTABLE NS_IMETHOD WriteWStringZ(const PRUnichar *aString) = 0;
/**
* Write an 8-bit pascal style string (UTF8-encoded) to the stream.
* 32-bit length field, followed by length 8-bit chars.
*/
/* void writeUtf8Z (in wstring aString); */
NS_SCRIPTABLE NS_IMETHOD WriteUtf8Z(const PRUnichar *aString) = 0;
/**
* Write an opaque byte array to the stream.
*/
/* void writeBytes ([size_is (aLength)] in string aString, in PRUint32 aLength); */
NS_SCRIPTABLE NS_IMETHOD WriteBytes(const char *aString, PRUint32 aLength) = 0;
/**
* Write an opaque byte array to the stream.
*/
/* void writeByteArray ([array, size_is (aLength)] in PRUint8 aBytes, in PRUint32 aLength); */
NS_SCRIPTABLE NS_IMETHOD WriteByteArray(PRUint8 *aBytes, PRUint32 aLength) = 0;
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsIBinaryOutputStream, NS_IBINARYOUTPUTSTREAM_IID)
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIBINARYOUTPUTSTREAM \
NS_SCRIPTABLE NS_IMETHOD SetOutputStream(nsIOutputStream *aOutputStream); \
NS_SCRIPTABLE NS_IMETHOD WriteBoolean(PRBool aBoolean); \
NS_SCRIPTABLE NS_IMETHOD Write8(PRUint8 aByte); \
NS_SCRIPTABLE NS_IMETHOD Write16(PRUint16 a16); \
NS_SCRIPTABLE NS_IMETHOD Write32(PRUint32 a32); \
NS_SCRIPTABLE NS_IMETHOD Write64(PRUint64 a64); \
NS_SCRIPTABLE NS_IMETHOD WriteFloat(float aFloat); \
NS_SCRIPTABLE NS_IMETHOD WriteDouble(double aDouble); \
NS_SCRIPTABLE NS_IMETHOD WriteStringZ(const char *aString); \
NS_SCRIPTABLE NS_IMETHOD WriteWStringZ(const PRUnichar *aString); \
NS_SCRIPTABLE NS_IMETHOD WriteUtf8Z(const PRUnichar *aString); \
NS_SCRIPTABLE NS_IMETHOD WriteBytes(const char *aString, PRUint32 aLength); \
NS_SCRIPTABLE NS_IMETHOD WriteByteArray(PRUint8 *aBytes, PRUint32 aLength);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIBINARYOUTPUTSTREAM(_to) \
NS_SCRIPTABLE NS_IMETHOD SetOutputStream(nsIOutputStream *aOutputStream) { return _to SetOutputStream(aOutputStream); } \
NS_SCRIPTABLE NS_IMETHOD WriteBoolean(PRBool aBoolean) { return _to WriteBoolean(aBoolean); } \
NS_SCRIPTABLE NS_IMETHOD Write8(PRUint8 aByte) { return _to Write8(aByte); } \
NS_SCRIPTABLE NS_IMETHOD Write16(PRUint16 a16) { return _to Write16(a16); } \
NS_SCRIPTABLE NS_IMETHOD Write32(PRUint32 a32) { return _to Write32(a32); } \
NS_SCRIPTABLE NS_IMETHOD Write64(PRUint64 a64) { return _to Write64(a64); } \
NS_SCRIPTABLE NS_IMETHOD WriteFloat(float aFloat) { return _to WriteFloat(aFloat); } \
NS_SCRIPTABLE NS_IMETHOD WriteDouble(double aDouble) { return _to WriteDouble(aDouble); } \
NS_SCRIPTABLE NS_IMETHOD WriteStringZ(const char *aString) { return _to WriteStringZ(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteWStringZ(const PRUnichar *aString) { return _to WriteWStringZ(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteUtf8Z(const PRUnichar *aString) { return _to WriteUtf8Z(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteBytes(const char *aString, PRUint32 aLength) { return _to WriteBytes(aString, aLength); } \
NS_SCRIPTABLE NS_IMETHOD WriteByteArray(PRUint8 *aBytes, PRUint32 aLength) { return _to WriteByteArray(aBytes, aLength); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIBINARYOUTPUTSTREAM(_to) \
NS_SCRIPTABLE NS_IMETHOD SetOutputStream(nsIOutputStream *aOutputStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOutputStream(aOutputStream); } \
NS_SCRIPTABLE NS_IMETHOD WriteBoolean(PRBool aBoolean) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteBoolean(aBoolean); } \
NS_SCRIPTABLE NS_IMETHOD Write8(PRUint8 aByte) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write8(aByte); } \
NS_SCRIPTABLE NS_IMETHOD Write16(PRUint16 a16) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write16(a16); } \
NS_SCRIPTABLE NS_IMETHOD Write32(PRUint32 a32) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write32(a32); } \
NS_SCRIPTABLE NS_IMETHOD Write64(PRUint64 a64) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write64(a64); } \
NS_SCRIPTABLE NS_IMETHOD WriteFloat(float aFloat) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteFloat(aFloat); } \
NS_SCRIPTABLE NS_IMETHOD WriteDouble(double aDouble) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteDouble(aDouble); } \
NS_SCRIPTABLE NS_IMETHOD WriteStringZ(const char *aString) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteStringZ(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteWStringZ(const PRUnichar *aString) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteWStringZ(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteUtf8Z(const PRUnichar *aString) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteUtf8Z(aString); } \
NS_SCRIPTABLE NS_IMETHOD WriteBytes(const char *aString, PRUint32 aLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteBytes(aString, aLength); } \
NS_SCRIPTABLE NS_IMETHOD WriteByteArray(PRUint8 *aBytes, PRUint32 aLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteByteArray(aBytes, aLength); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsBinaryOutputStream : public nsIBinaryOutputStream
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIBINARYOUTPUTSTREAM
nsBinaryOutputStream();
private:
~nsBinaryOutputStream();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsBinaryOutputStream, nsIBinaryOutputStream)
nsBinaryOutputStream::nsBinaryOutputStream()
{
/* member initializers and constructor code */
}
nsBinaryOutputStream::~nsBinaryOutputStream()
{
/* destructor code */
}
/* void setOutputStream (in nsIOutputStream aOutputStream); */
NS_IMETHODIMP nsBinaryOutputStream::SetOutputStream(nsIOutputStream *aOutputStream)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeBoolean (in PRBool aBoolean); */
NS_IMETHODIMP nsBinaryOutputStream::WriteBoolean(PRBool aBoolean)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void write8 (in PRUint8 aByte); */
NS_IMETHODIMP nsBinaryOutputStream::Write8(PRUint8 aByte)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void write16 (in PRUint16 a16); */
NS_IMETHODIMP nsBinaryOutputStream::Write16(PRUint16 a16)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void write32 (in PRUint32 a32); */
NS_IMETHODIMP nsBinaryOutputStream::Write32(PRUint32 a32)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void write64 (in PRUint64 a64); */
NS_IMETHODIMP nsBinaryOutputStream::Write64(PRUint64 a64)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeFloat (in float aFloat); */
NS_IMETHODIMP nsBinaryOutputStream::WriteFloat(float aFloat)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeDouble (in double aDouble); */
NS_IMETHODIMP nsBinaryOutputStream::WriteDouble(double aDouble)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeStringZ (in string aString); */
NS_IMETHODIMP nsBinaryOutputStream::WriteStringZ(const char *aString)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeWStringZ (in wstring aString); */
NS_IMETHODIMP nsBinaryOutputStream::WriteWStringZ(const PRUnichar *aString)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeUtf8Z (in wstring aString); */
NS_IMETHODIMP nsBinaryOutputStream::WriteUtf8Z(const PRUnichar *aString)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeBytes ([size_is (aLength)] in string aString, in PRUint32 aLength); */
NS_IMETHODIMP nsBinaryOutputStream::WriteBytes(const char *aString, PRUint32 aLength)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void writeByteArray ([array, size_is (aLength)] in PRUint8 aBytes, in PRUint32 aLength); */
NS_IMETHODIMP nsBinaryOutputStream::WriteByteArray(PRUint8 *aBytes, PRUint32 aLength)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
inline nsresult
NS_WriteOptionalStringZ(nsIBinaryOutputStream* aStream, const char* aString)
{
PRBool nonnull = (aString != nsnull);
nsresult rv = aStream->WriteBoolean(nonnull);
if (NS_SUCCEEDED(rv) && nonnull)
rv = aStream->WriteStringZ(aString);
return rv;
}
inline nsresult
NS_WriteOptionalWStringZ(nsIBinaryOutputStream* aStream, const PRUnichar* aString)
{
PRBool nonnull = (aString != nsnull);
nsresult rv = aStream->WriteBoolean(nonnull);
if (NS_SUCCEEDED(rv) && nonnull)
rv = aStream->WriteWStringZ(aString);
return rv;
}
#endif /* __gen_nsIBinaryOutputStream_h__ */