HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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 <UT/UT_NonCopyable.h>
17 #include <SYS/SYS_Types.h>
18 
19 class UT_IStream;
20 
21 // This class provides means to create filters for the input streams that
22 // underline the reader stream. It is used by the FS_ReaderStream to instantiate
23 // a filter whenever it needs to create its input stream.
25 {
26 public:
27  // Standard constructor and destructor.
29  virtual ~FS_IStreamFilterFactory();
30 
32 
33  /// Get the amount of memory owned by this FS_IStreamFilterFactory
34  virtual int64 getMemoryUsage(bool inclusive) const = 0;
35 
36  /// This method instantiates an input stream filter (which is itself an
37  /// input stream). The filter will read raw data from the 'is', then
38  /// process it and present the transformed data to the user of the
39  /// filter, which will see it just as a regular input stream.
40  virtual UT_IStream *createIStreamFilter(
41  UT_IStream * is) const = 0;
42 
43  /// Instantiates a identical copy of this class object.
44  virtual FS_IStreamFilterFactory *cloneFilterFactory() const = 0;
45 
46  /// Obtains the size of the data encoded in the is, ie. the size of the data
47  /// after the raw input stream bytes have been filtered.
48  virtual int getDataSize(
49  UT_IStream * is,
50  int stream_size) const = 0;
51 };
52 
53 #endif
54 
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
long long int64
Definition: SYS_Types.h:116
#define FS_API
Definition: FS_API.h:10