HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FS_IStreamFilterFactory.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: FS_IStreamFilterFactory.h ( FS Library, C++)
7  *
8  * COMMENTS:
9  *
10  */
11 
12 #ifndef __FS_IStreamFilterFactory__
13 #define __FS_IStreamFilterFactory__
14 
15 #include "FS_API.h"
16 #include <SYS/SYS_Types.h>
17 
18 class UT_IStream;
19 
20 // This class provides means to create filters for the input streams that
21 // underline the reader stream. It is used by the FS_ReaderStream to instantiate
22 // a filter whenever it needs to create its input stream.
24 {
25 public:
26  // Standard constructor and destructor.
28  virtual ~FS_IStreamFilterFactory();
29 
30  /// Get the amount of memory owned by this FS_IStreamFilterFactory
31  virtual int64 getMemoryUsage(bool inclusive) const = 0;
32 
33  /// This method instantiates an input stream filter (which is itself an
34  /// input stream). The filter will read raw data from the 'is', then
35  /// process it and present the transformed data to the user of the
36  /// filter, which will see it just as a regular input stream.
37  virtual UT_IStream *createIStreamFilter(
38  UT_IStream * is) const = 0;
39 
40  /// Instantiates a identical copy of this class object.
41  virtual FS_IStreamFilterFactory *cloneFilterFactory() const = 0;
42 
43  /// Obtains the size of the data encoded in the is, ie. the size of the data
44  /// after the raw input stream bytes have been filtered.
45  virtual int getDataSize(
46  UT_IStream * is,
47  int stream_size) const = 0;
48 };
49 
50 #endif
51 
long long int64
Definition: SYS_Types.h:106
#define FS_API
Definition: FS_API.h:10