| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/private/fileback.h
 
- // Purpose:     Back an input stream with memory or a file
 
- // Author:      Mike Wetherell
 
- // Copyright:   (c) 2006 Mike Wetherell
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_FILEBACK_H__
 
- #define _WX_FILEBACK_H__
 
- #include "wx/defs.h"
 
- #if wxUSE_FILESYSTEM
 
- #include "wx/stream.h"
 
- // ----------------------------------------------------------------------------
 
- // Backs an input stream with memory or a file to make it seekable.
 
- //
 
- // One or more wxBackedInputStreams can be used to read it's data. The data is
 
- // reference counted, so stays alive until the last wxBackingFile or
 
- // wxBackedInputStream using it is destroyed.
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_BASE wxBackingFile
 
- {
 
- public:
 
-     enum { DefaultBufSize = 16384 };
 
-     // Takes ownership of stream. If the stream is smaller than bufsize, the
 
-     // backing file is never created and the backing is done with memory.
 
-     wxBackingFile(wxInputStream *stream,
 
-                   size_t bufsize = DefaultBufSize,
 
-                   const wxString& prefix = wxT("wxbf"));
 
-     wxBackingFile() : m_impl(NULL) { }
 
-     ~wxBackingFile();
 
-     wxBackingFile(const wxBackingFile& backer);
 
-     wxBackingFile& operator=(const wxBackingFile& backer);
 
-     operator bool() const { return m_impl != NULL; }
 
- private:
 
-     class wxBackingFileImpl *m_impl;
 
-     friend class wxBackedInputStream;
 
- };
 
- // ----------------------------------------------------------------------------
 
- // An input stream to read from a wxBackingFile.
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_BASE wxBackedInputStream : public wxInputStream
 
- {
 
- public:
 
-     wxBackedInputStream(const wxBackingFile& backer);
 
-     // If the length of the backer's parent stream is unknown then GetLength()
 
-     // returns wxInvalidOffset until the parent has been read to the end.
 
-     wxFileOffset GetLength() const;
 
-     // Returns the length, reading the parent stream to the end if necessary.
 
-     wxFileOffset FindLength() const;
 
-     bool IsSeekable() const { return true; }
 
- protected:
 
-     size_t OnSysRead(void *buffer, size_t size);
 
-     wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode);
 
-     wxFileOffset OnSysTell() const;
 
- private:
 
-     wxBackingFile m_backer;
 
-     wxFileOffset m_pos;
 
-     wxDECLARE_NO_COPY_CLASS(wxBackedInputStream);
 
- };
 
- #endif // wxUSE_FILESYSTEM
 
- #endif // _WX_FILEBACK_H__
 
 
  |