/////////////////////////////////////////////////////////////////////////////
-// Name: archive.cpp
+// Name: src/common/archive.cpp
// Purpose: Streams for archive formats
// Author: Mike Wetherell
// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "archive.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
+ #pragma hdrstop
#endif
#if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
#include "wx/archive.h"
-#include "wx/html/forcelnk.h"
IMPLEMENT_ABSTRACT_CLASS(wxArchiveEntry, wxObject)
-IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxObject)
-
-#if wxUSE_ZIPSTREAM
-FORCE_LINK(zipstrm)
-#endif
+IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxFilterClassFactoryBase)
/////////////////////////////////////////////////////////////////////////////
{
}
+wxArchiveInputStream::wxArchiveInputStream(wxInputStream *stream,
+ wxMBConv& conv)
+ : wxFilterInputStream(stream),
+ m_conv(conv)
+{
+}
+
/////////////////////////////////////////////////////////////////////////////
// wxArchiveOutputStream
{
}
+wxArchiveOutputStream::wxArchiveOutputStream(wxOutputStream *stream,
+ wxMBConv& conv)
+ : wxFilterOutputStream(stream),
+ m_conv(conv)
+{
+}
+
/////////////////////////////////////////////////////////////////////////////
// wxArchiveEntry
return *this;
}
+
+/////////////////////////////////////////////////////////////////////////////
+// wxArchiveClassFactory
+
+wxArchiveClassFactory *wxArchiveClassFactory::sm_first = NULL;
+
+void wxArchiveClassFactory::Remove()
+{
+ if (m_next != this)
+ {
+ wxArchiveClassFactory **pp = &sm_first;
+
+ while (*pp != this)
+ pp = &(*pp)->m_next;
+
+ *pp = m_next;
+
+ m_next = this;
+ }
+}
+
#endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS