xref: /AOO41X/main/writerperfect/source/stream/WPXSvStream.h (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 #ifndef WPXSVSTREAM_H
2 #define WPXSVSTREAM_H
3 
4 #include <sot/storage.hxx>
5 #include <com/sun/star/io/XInputStream.hpp>
6 
7 #ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_H_
8 #include <com/sun/star/io/XSeekable.hpp>
9 #endif
10 
11 
12 #if defined _MSC_VER
13 #pragma warning( push, 1 )
14 #endif
15 #include <libwpd/WPXStream.h>
16 #if defined _MSC_VER
17 #pragma warning( pop )
18 #endif
19 
20 class WPXSvInputStream : public WPXInputStream
21 {
22 public:
23     WPXSvInputStream( ::com::sun::star::uno::Reference<
24                       ::com::sun::star::io::XInputStream > xStream );
25     virtual ~WPXSvInputStream();
26 
27     virtual bool isOLEStream();
28     virtual WPXInputStream * getDocumentOLEStream();
29     virtual WPXInputStream * getDocumentOLEStream(const char *name);
30 
31     virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
32     virtual int seek(long offset, WPX_SEEK_TYPE seekType);
33     virtual long tell();
34     virtual bool atEOS();
35 
36 private:
37     SotStorageRef       mxChildStorage;
38     SotStorageStreamRef mxChildStream;
39     ::com::sun::star::uno::Reference<
40             ::com::sun::star::io::XInputStream > mxStream;
41     ::com::sun::star::uno::Reference<
42             ::com::sun::star::io::XSeekable > mxSeekable;
43     ::com::sun::star::uno::Sequence< sal_Int8 > maData;
44     sal_Int64 mnLength;
45 };
46 
47 #endif
48