]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tarstrm.h
support SDK < 10.6, fixes #14902
[wxWidgets.git] / include / wx / tarstrm.h
index 8a5baf667579520fec5d7f062e255ad668aca42d..44087ccabd9ea6ef7af4a5a53c067bfc901a02d5 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        tarstrm.h
+// Name:        wx/tarstrm.h
 // Purpose:     Streams for Tar files
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
 // Purpose:     Streams for Tar files
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
 #if wxUSE_TARSTREAM
 
 #include "wx/archive.h"
 #if wxUSE_TARSTREAM
 
 #include "wx/archive.h"
+#include "wx/hashmap.h"
 
 
 /////////////////////////////////////////////////////////////////////////////
 // Constants
 
 // TypeFlag values
 
 
 /////////////////////////////////////////////////////////////////////////////
 // Constants
 
 // TypeFlag values
-enum {
+enum wxTarType
+{
     wxTAR_REGTYPE   = '0',      // regular file
     wxTAR_LNKTYPE   = '1',      // hard link
     wxTAR_SYMTYPE   = '2',      // symbolic link
     wxTAR_REGTYPE   = '0',      // regular file
     wxTAR_LNKTYPE   = '1',      // hard link
     wxTAR_SYMTYPE   = '2',      // symbolic link
@@ -43,7 +45,7 @@ enum wxTarFormat
 /////////////////////////////////////////////////////////////////////////////
 // wxTarNotifier
 
 /////////////////////////////////////////////////////////////////////////////
 // wxTarNotifier
 
-class wxTarNotifier
+class WXDLLIMPEXP_BASE wxTarNotifier
 {
 public:
     virtual ~wxTarNotifier() { }
 {
 public:
     virtual ~wxTarNotifier() { }
@@ -55,7 +57,7 @@ public:
 /////////////////////////////////////////////////////////////////////////////
 // Tar Entry - hold the meta data for a file in the tar
 
 /////////////////////////////////////////////////////////////////////////////
 // Tar Entry - hold the meta data for a file in the tar
 
-class wxTarEntry : public wxArchiveEntry
+class WXDLLIMPEXP_BASE wxTarEntry : public wxArchiveEntry
 {
 public:
     wxTarEntry(const wxString& name = wxEmptyString,
 {
 public:
     wxTarEntry(const wxString& name = wxEmptyString,
@@ -132,7 +134,7 @@ private:
     wxDateTime   m_ModifyTime;
     wxDateTime   m_AccessTime;
     wxDateTime   m_CreateTime;
     wxDateTime   m_ModifyTime;
     wxDateTime   m_AccessTime;
     wxDateTime   m_CreateTime;
-    wxChar       m_TypeFlag;
+    int          m_TypeFlag;
     wxString     m_LinkName;
     wxString     m_UserName;
     wxString     m_GroupName;
     wxString     m_LinkName;
     wxString     m_UserName;
     wxString     m_GroupName;
@@ -148,7 +150,9 @@ private:
 /////////////////////////////////////////////////////////////////////////////
 // wxTarInputStream
 
 /////////////////////////////////////////////////////////////////////////////
 // wxTarInputStream
 
-class wxTarInputStream : public wxArchiveInputStream
+WX_DECLARE_STRING_HASH_MAP(wxString, wxTarHeaderRecords);
+
+class WXDLLIMPEXP_BASE wxTarInputStream : public wxArchiveInputStream
 {
 public:
     typedef wxTarEntry entry_type;
 {
 public:
     typedef wxTarEntry entry_type;
@@ -178,7 +182,7 @@ private:
     bool IsOpened() const               { return m_pos != wxInvalidOffset; }
 
     wxStreamError ReadHeaders();
     bool IsOpened() const               { return m_pos != wxInvalidOffset; }
 
     wxStreamError ReadHeaders();
-    bool ReadExtendedHeader(class wxTarHeaderRecords*& recs);
+    bool ReadExtendedHeader(wxTarHeaderRecords*& recs);
 
     wxString GetExtendedHeader(const wxString& key) const;
     wxString GetHeaderPath() const;
 
     wxString GetExtendedHeader(const wxString& key) const;
     wxString GetHeaderPath() const;
@@ -193,17 +197,17 @@ private:
     int m_sumType;
     int m_tarType;
     class wxTarHeaderBlock *m_hdr;
     int m_sumType;
     int m_tarType;
     class wxTarHeaderBlock *m_hdr;
-    class wxTarHeaderRecords *m_HeaderRecs;
-    class wxTarHeaderRecords *m_GlobalHeaderRecs;
+    wxTarHeaderRecords *m_HeaderRecs;
+    wxTarHeaderRecords *m_GlobalHeaderRecs;
 
 
-    DECLARE_NO_COPY_CLASS(wxTarInputStream)
+    wxDECLARE_NO_COPY_CLASS(wxTarInputStream);
 };
 
 
 /////////////////////////////////////////////////////////////////////////////
 // wxTarOutputStream
 
 };
 
 
 /////////////////////////////////////////////////////////////////////////////
 // wxTarOutputStream
 
-class wxTarOutputStream : public wxArchiveOutputStream
+class WXDLLIMPEXP_BASE wxTarOutputStream : public wxArchiveOutputStream
 {
 public:
     wxTarOutputStream(wxOutputStream& stream,
 {
 public:
     wxTarOutputStream(wxOutputStream& stream,
@@ -277,8 +281,9 @@ private:
     char *m_extendedHdr;
     size_t m_extendedSize;
     wxString m_badfit;
     char *m_extendedHdr;
     size_t m_extendedSize;
     wxString m_badfit;
+    bool m_endrecWritten;
 
 
-    DECLARE_NO_COPY_CLASS(wxTarOutputStream)
+    wxDECLARE_NO_COPY_CLASS(wxTarOutputStream);
 };
 
 
 };
 
 
@@ -295,7 +300,7 @@ typedef wxArchiveIterator<wxTarInputStream,
 /////////////////////////////////////////////////////////////////////////////
 // wxTarClassFactory
 
 /////////////////////////////////////////////////////////////////////////////
 // wxTarClassFactory
 
-class wxTarClassFactory : public wxArchiveClassFactory
+class WXDLLIMPEXP_BASE wxTarClassFactory : public wxArchiveClassFactory
 {
 public:
     typedef wxTarEntry        entry_type;
 {
 public:
     typedef wxTarEntry        entry_type;