/////////////////////////////////////////////////////////////////////////////
-// Name: tarstrm.h
+// Name: wx/tarstrm.h
// Purpose: Streams for Tar files
// Author: Mike Wetherell
// RCS-ID: $Id$
#if wxUSE_TARSTREAM
#include "wx/archive.h"
+#include "wx/hashmap.h"
/////////////////////////////////////////////////////////////////////////////
// Constants
// TypeFlag values
-enum {
+enum wxTarType
+{
wxTAR_REGTYPE = '0', // regular file
wxTAR_LNKTYPE = '1', // hard link
wxTAR_SYMTYPE = '2', // symbolic link
/////////////////////////////////////////////////////////////////////////////
// wxTarNotifier
-class wxTarNotifier
+class WXDLLIMPEXP_BASE wxTarNotifier
{
public:
virtual ~wxTarNotifier() { }
/////////////////////////////////////////////////////////////////////////////
// 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,
wxDateTime m_ModifyTime;
wxDateTime m_AccessTime;
wxDateTime m_CreateTime;
- wxChar m_TypeFlag;
+ int m_TypeFlag;
wxString m_LinkName;
wxString m_UserName;
wxString m_GroupName;
/////////////////////////////////////////////////////////////////////////////
// wxTarInputStream
-class wxTarInputStream : public wxArchiveInputStream
+WX_DECLARE_STRING_HASH_MAP(wxString, wxTarHeaderRecords);
+
+class WXDLLIMPEXP_BASE wxTarInputStream : public wxArchiveInputStream
{
public:
typedef wxTarEntry entry_type;
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;
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)
};
/////////////////////////////////////////////////////////////////////////////
// wxTarOutputStream
-class wxTarOutputStream : public wxArchiveOutputStream
+class WXDLLIMPEXP_BASE wxTarOutputStream : public wxArchiveOutputStream
{
public:
wxTarOutputStream(wxOutputStream& stream,
char *m_extendedHdr;
size_t m_extendedSize;
wxString m_badfit;
+ bool m_endrecWritten;
DECLARE_NO_COPY_CLASS(wxTarOutputStream)
};
/////////////////////////////////////////////////////////////////////////////
// wxTarClassFactory
-class wxTarClassFactory : public wxArchiveClassFactory
+class WXDLLIMPEXP_BASE wxTarClassFactory : public wxArchiveClassFactory
{
public:
typedef wxTarEntry entry_type;