/*****************************************************************************/ // Copyright 2006-2007 Adobe Systems Incorporated // All Rights Reserved. // // NOTICE: Adobe permits you to use, modify, and distribute this file in // accordance with the terms of the Adobe license agreement accompanying it. /*****************************************************************************/ /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_file_stream.h#1 $ */ /* $DateTime: 2012/05/30 13:28:51 $ */ /* $Change: 832332 $ */ /* $Author: tknoll $ */ /** \file * Simple, portable, file read/write support. */ /*****************************************************************************/ #ifndef __dng_file_stream__ #define __dng_file_stream__ /*****************************************************************************/ #include "dng_stream.h" /*****************************************************************************/ /// \brief A stream to/from a disk file. See dng_stream for read/write interface class dng_file_stream: public dng_stream { private: FILE *fFile; public: /// Open a stream on a file. /// \param filename Pathname in platform synax. /// \param output Set to true if writing, false otherwise. /// \param bufferSize size of internal buffer to use. Defaults to 4k. dng_file_stream (const char *filename, bool output = false, uint32 bufferSize = kDefaultBufferSize); virtual ~dng_file_stream (); protected: virtual uint64 DoGetLength (); virtual void DoRead (void *data, uint32 count, uint64 offset); virtual void DoWrite (const void *data, uint32 count, uint64 offset); private: // Hidden copy constructor and assignment operator. dng_file_stream (const dng_file_stream &stream); dng_file_stream & operator= (const dng_file_stream &stream); }; /*****************************************************************************/ #endif /*****************************************************************************/