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