Back to index

lightning-sunbird  0.9+nobinonly
nsJARInputStream.h
Go to the documentation of this file.
00001 
00002 /* nsJARInputStream.h
00003  * 
00004  * ***** BEGIN LICENSE BLOCK *****
00005  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00006  *
00007  * The contents of this file are subject to the Mozilla Public License Version
00008  * 1.1 (the "License"); you may not use this file except in compliance with
00009  * the License. You may obtain a copy of the License at
00010  * http://www.mozilla.org/MPL/
00011  *
00012  * Software distributed under the License is distributed on an "AS IS" basis,
00013  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00014  * for the specific language governing rights and limitations under the
00015  * License.
00016  *
00017  * The Original Code is Netscape Communicator source 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.
00018  *
00019  * The Initial Developer of the Original Code is
00020  * Netscape Communications Corporation.
00021  * Portions created by the Initial Developer are Copyright (C) 1999
00022  * the Initial Developer. All Rights Reserved.
00023  *
00024  * Contributor(s):
00025  *   Mitch Stoltz <mstoltz@netscape.com>
00026  *
00027  * Alternatively, the contents of this file may be used under the terms of
00028  * either the GNU General Public License Version 2 or later (the "GPL"), or
00029  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00030  * in which case the provisions of the GPL or the LGPL are applicable instead
00031  * of those above. If you wish to allow use of your version of this file only
00032  * under the terms of either the GPL or the LGPL, and not to allow others to
00033  * use your version of this file under the terms of the MPL, indicate your
00034  * decision by deleting the provisions above and replace them with the notice
00035  * and other provisions required by the GPL or the LGPL. If you do not delete
00036  * the provisions above, a recipient may use your version of this file under
00037  * the terms of any one of the MPL, the GPL or the LGPL.
00038  *
00039  * ***** END LICENSE BLOCK ***** */
00040 
00041 #ifndef nsJARINPUTSTREAM_h__
00042 #define nsJARINPUTSTREAM_h__
00043 
00044 // {a756724a-1dd1-11b2-90d8-9c98fc2b7ac0}
00045 #define NS_JARINPUTSTREAM_CID \
00046    {0xa756724a, 0x1dd1, 0x11b2, \
00047      {0x90, 0xd8, 0x9c, 0x98, 0xfc, 0x2b, 0x7a, 0xc0}}
00048 
00049 #include "nsIInputStream.h"
00050 #include "nsJAR.h"
00051 
00052 /*-------------------------------------------------------------------------
00053  * Class nsJARInputStream declaration. This class defines objects returned
00054  * by calls to nsJAR::GetInputStream(filename) for the purpose of reading 
00055  * a file item out of a JAR file. 
00056  *------------------------------------------------------------------------*/
00057 class nsJARInputStream : public nsIInputStream
00058 {
00059   public:
00060 
00061     nsJARInputStream();
00062     virtual ~nsJARInputStream();
00063     
00064     NS_DEFINE_STATIC_CID_ACCESSOR( NS_JARINPUTSTREAM_CID );
00065   
00066     NS_DECL_ISUPPORTS
00067     NS_DECL_NSIINPUTSTREAM
00068    
00069     nsresult 
00070     Init(nsJAR* jar, const char* aFilename);
00071   
00072   protected:
00073     nsZipReadState  mReadInfo;
00074 
00075     nsJAR*      mJAR;
00076 };
00077 
00078 #endif /* nsJAR_h__ */
00079