]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch which allows you to detach a stream
authorRobert Roebling <robert@roebling.de>
Wed, 6 Sep 2006 13:57:06 +0000 (13:57 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 6 Sep 2006 13:57:06 +0000 (13:57 +0000)
   from a wxFSFile. Patch 1190378

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/fsfile.tex
include/wx/filesys.h

index 8ad56a12fdad4315186df74adebe3170f72c4cbb..220a6161589d96bd0551310a423c984b1f4c684d 100644 (file)
@@ -71,6 +71,15 @@ class wxMyFSFile : public wxFSFile
 };
 \end{verbatim}
 
 };
 \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}
 \membersection{wxFSFile::GetAnchor}\label{wxfsfilegetanchor}
 
 \constfunc{const wxString\&}{GetAnchor}{\void}
index f24323363ce04afbc39a848234c00b0e8eac6ff8..bda6d7c5dd341cc7e721bbcca723be951dc7320f 100644 (file)
@@ -48,6 +48,7 @@ public:
              )
     {
         m_Stream = stream;
              )
     {
         m_Stream = stream;
+        m_destroy = true;
         m_Location = loc;
         m_MimeType = mimetype; m_MimeType.MakeLower();
         m_Anchor = anchor;
         m_Location = loc;
         m_MimeType = mimetype; m_MimeType.MakeLower();
         m_Anchor = anchor;
@@ -56,12 +57,15 @@ public:
 #endif // wxUSE_DATETIME
     }
 
 #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;}
 
 
     // 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;}
 
     // returns file's mime type
     const wxString& GetMimeType() const {return m_MimeType;}
 
@@ -76,6 +80,7 @@ public:
 
 private:
     wxInputStream *m_Stream;
 
 private:
     wxInputStream *m_Stream;
+    bool m_destroy;
     wxString m_Location;
     wxString m_MimeType;
     wxString m_Anchor;
     wxString m_Location;
     wxString m_MimeType;
     wxString m_Anchor;