/*
 *	The contents of this file are subject to the Netscape Public License 
 *	Version 1.0 (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 the Netscape Messaging Access SDK Version 3.5 code, 
 *	released on or about June 15, 1998. 
 *	
 *	The Initial Developer of the Original Code is Netscape Communications 
 *	Corporation. Portions created by Netscape are Copyright (C) 1998 Netscape 
 *	Communications Corporation. All Rights Reserved. 
 *	
 *	Contributor(s): ______________________________________. 
*/
  
/*
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
* (http://home.netscape.com/misc/trademarks.html)
*/

/*
* nsmail_inputstream.h
* prasad jan 8,98
*
* basic inputstream implementation for file i/o
*/

#ifndef NSMAIL_INPUTSTREAM_H
#define NSMAIL_INPUTSTREAM_H

#include "nsmail.h"

#ifdef __cplusplus
extern "C" {
#endif


/* carson's additions -------------------------------------- */

	
typedef struct fileRock		/* my custom rock for persisting to a file */
{
	char *filename;
	FILE *f;
	char *buffer;
	int offset;

} fileRock_t;



int fileRock_new( char *filename, fileRock_t **ppRock );					/* constructor */
void fileRock_free( fileRock_t **ppRock );					/* destructor */
int fileRock_read( void *pRock, char *buf, unsigned size );	/* read */
void fileRock_rewind( void *pRock );							/* rewind */
void fileRock_close( void *pRock );							/* close */

int nsmail_inputstream_new( char *filename, nsmail_inputstream_t **ppInput );	/* constructor */
void nsmail_inputstream_free( nsmail_inputstream_t **ppInput );		/* destructor */


#ifdef __cplusplus
}
#endif


#endif /* NSMAIL_INPUTSTREAM_H */
