From: Robert Roebling Date: Wed, 6 Sep 2006 13:57:06 +0000 (+0000) Subject: Applied patch which allows you to detach a stream X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/84d1cd430f9f4cba81737a45cd40fdb7cbac4f7d?ds=sidebyside Applied patch which allows you to detach a stream from a wxFSFile. Patch 1190378 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/fsfile.tex b/docs/latex/wx/fsfile.tex index 8ad56a12fd..220a616158 100644 --- a/docs/latex/wx/fsfile.tex +++ b/docs/latex/wx/fsfile.tex @@ -71,6 +71,15 @@ class wxMyFSFile : public wxFSFile }; \end{verbatim} +\membersection{wxFSFile::DetachStream}\label{wxfsfiledetachstream} + +\func{void}{DetachStream}{\void} + +Detaches the stream from the wxFSFile object. That is, the +stream obtained with {\tt GetStream()} will continue its existance +after the wxFSFile object is deleted. You will have to delete +the stream yourself. + \membersection{wxFSFile::GetAnchor}\label{wxfsfilegetanchor} \constfunc{const wxString\&}{GetAnchor}{\void} diff --git a/include/wx/filesys.h b/include/wx/filesys.h index f24323363c..bda6d7c5dd 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -48,6 +48,7 @@ public: ) { m_Stream = stream; + m_destroy = true; m_Location = loc; m_MimeType = mimetype; m_MimeType.MakeLower(); m_Anchor = anchor; @@ -56,12 +57,15 @@ public: #endif // wxUSE_DATETIME } - virtual ~wxFSFile() { if (m_Stream) delete m_Stream; } + virtual ~wxFSFile() { if (m_Stream && m_destroy) delete m_Stream; } // returns stream. This doesn't _create_ stream, it only returns // pointer to it. wxInputStream *GetStream() const {return m_Stream;} + // gives away the ownership of stream + void DetachStream() { m_destroy = false; } + // returns file's mime type const wxString& GetMimeType() const {return m_MimeType;} @@ -76,6 +80,7 @@ public: private: wxInputStream *m_Stream; + bool m_destroy; wxString m_Location; wxString m_MimeType; wxString m_Anchor;