InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IXferBytes.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Robin Briggs
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Purpose:
24 // This is the underlying data model for streaming. Handles the connection
25 // between the stream and the backend buffer storage system (file, database
26 // record, memory, etc.).
27 //
28 // THIS IS NOT A STANDARD BOSS INTERFACE
29 //
30 //========================================================================================
31 
32 #ifndef __IXFERBYTES__
33 #define __IXFERBYTES__
34 
35 #include "IPMStream.h"
36 
43 {
44 
45 public:
46  virtual ~IXferBytes()
47  {}
48 
57  virtual uint32 Read(void *buffer, uint32 num) = 0;
58 
66  virtual uint32 Write(void *buffer, uint32 num) = 0;
67 
74  virtual uint64 Seek(int64 numberOfBytes, SeekFromWhere fromHere) = 0;
75 
78  virtual void Flush() = 0;
79 
82  virtual StreamState GetStreamState() = 0;
83 
87  virtual void SetEndOfStream() = 0;
88 };
89 
90 #endif // __IXFERBYTES__