Home | History | Annotate | Download | only in source
      1 /*****************************************************************************/
      2 // Copyright 2006-2007 Adobe Systems Incorporated
      3 // All Rights Reserved.
      4 //
      5 // NOTICE:  Adobe permits you to use, modify, and distribute this file in
      6 // accordance with the terms of the Adobe license agreement accompanying it.
      7 /*****************************************************************************/
      8 
      9 /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_file_stream.h#1 $ */
     10 /* $DateTime: 2012/05/30 13:28:51 $ */
     11 /* $Change: 832332 $ */
     12 /* $Author: tknoll $ */
     13 
     14 /** \file
     15  * Simple, portable, file read/write support.
     16  */
     17 
     18 /*****************************************************************************/
     19 
     20 #ifndef __dng_file_stream__
     21 #define __dng_file_stream__
     22 
     23 /*****************************************************************************/
     24 
     25 #include "dng_stream.h"
     26 
     27 /*****************************************************************************/
     28 
     29 /// \brief A stream to/from a disk file. See dng_stream for read/write interface
     30 
     31 class dng_file_stream: public dng_stream
     32 	{
     33 
     34 	private:
     35 
     36 		FILE *fFile;
     37 
     38 	public:
     39 
     40 		/// Open a stream on a file.
     41 		/// \param filename Pathname in platform synax.
     42 		/// \param output Set to true if writing, false otherwise.
     43 		/// \param bufferSize size of internal buffer to use. Defaults to 4k.
     44 
     45 		dng_file_stream (const char *filename,
     46 						 bool output = false,
     47 						 uint32 bufferSize = kDefaultBufferSize);
     48 
     49 		virtual ~dng_file_stream ();
     50 
     51 	protected:
     52 
     53 		virtual uint64 DoGetLength ();
     54 
     55 		virtual void DoRead (void *data,
     56 							 uint32 count,
     57 							 uint64 offset);
     58 
     59 		virtual void DoWrite (const void *data,
     60 							  uint32 count,
     61 							  uint64 offset);
     62 
     63 	private:
     64 
     65 		// Hidden copy constructor and assignment operator.
     66 
     67 		dng_file_stream (const dng_file_stream &stream);
     68 
     69 		dng_file_stream & operator= (const dng_file_stream &stream);
     70 
     71 	};
     72 
     73 /*****************************************************************************/
     74 
     75 #endif
     76 
     77 /*****************************************************************************/
     78