gecko-dev/netwerk/streamconv/converters/nsUnknownDecoder.h
2000-01-10 05:31:26 +00:00

77 lines
1.9 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* 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.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#ifndef nsUnknownDecoder_h__
#define nsUnknownDecoder_h__
#include "nsIStreamConverter.h"
#include "nsIChannel.h"
#include "nsCOMPtr.h"
#include "nsString.h"
#define NS_UNKNOWNDECODER_CID \
{ /* 7d7008a0-c49a-11d3-9b22-0080c7cb1080 */ \
0x7d7008a0, \
0xc49a, \
0x11d3, \
{0x9b, 0x22, 0x00, 0x80, 0xc7, 0xcb, 0x10, 0x80} \
}
class nsUnknownDecoder : public nsIStreamConverter
{
public:
// nsISupports methods
NS_DECL_ISUPPORTS
// nsIStreamConverter methods
NS_DECL_NSISTREAMCONVERTER
// nsIStreamListener methods
NS_DECL_NSISTREAMLISTENER
// nsIStreamObserver methods
NS_DECL_NSISTREAMOBSERVER
nsUnknownDecoder();
protected:
virtual ~nsUnknownDecoder();
void DetermineContentType();
nsresult FireListenerNotifications(nsIChannel *aChannel, nsISupports *aCtxt);
protected:
nsCOMPtr<nsIStreamListener> mNextListener;
char *mBuffer;
PRUint32 mBufferLen;
nsCString mContentType;
};
#endif /* nsUnknownDecoder_h__ */