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
31class 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