]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/archive.h
Use wmain() if supported by the compiler/CRT instead of main().
[wxWidgets.git] / include / wx / archive.h
index 0858d299f3c4de51fbd7742b06751289b0738f26..cd8438972dd2a01ae2b114bbc520f0a18486a6b3 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        archive.h
+// Name:        wx/archive.h
 // Purpose:     Streams for archive formats
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
 // Purpose:     Streams for archive formats
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
@@ -55,7 +55,7 @@ public:
     virtual void SetIsReadOnly(bool isReadOnly = true) = 0;
     virtual void SetName(const wxString& name,
                          wxPathFormat format = wxPATH_NATIVE) = 0;
     virtual void SetIsReadOnly(bool isReadOnly = true) = 0;
     virtual void SetName(const wxString& name,
                          wxPathFormat format = wxPATH_NATIVE) = 0;
-    
+
     wxArchiveEntry *Clone() const { return DoClone(); }
 
     void SetNotifier(wxArchiveNotifier& notifier);
     wxArchiveEntry *Clone() const { return DoClone(); }
 
     void SetNotifier(wxArchiveNotifier& notifier);
@@ -94,14 +94,14 @@ public:
     typedef wxArchiveEntry entry_type;
 
     virtual ~wxArchiveInputStream() { }
     typedef wxArchiveEntry entry_type;
 
     virtual ~wxArchiveInputStream() { }
-    
+
     virtual bool OpenEntry(wxArchiveEntry& entry) = 0;
     virtual bool CloseEntry() = 0;
 
     wxArchiveEntry *GetNextEntry()  { return DoGetNextEntry(); }
 
     virtual char Peek()             { return wxInputStream::Peek(); }
     virtual bool OpenEntry(wxArchiveEntry& entry) = 0;
     virtual bool CloseEntry() = 0;
 
     wxArchiveEntry *GetNextEntry()  { return DoGetNextEntry(); }
 
     virtual char Peek()             { return wxInputStream::Peek(); }
-    
+
 protected:
     wxArchiveInputStream(wxInputStream& stream, wxMBConv& conv);
     wxArchiveInputStream(wxInputStream *stream, wxMBConv& conv);
 protected:
     wxArchiveInputStream(wxInputStream& stream, wxMBConv& conv);
     wxArchiveInputStream(wxInputStream *stream, wxMBConv& conv);
@@ -123,7 +123,7 @@ private:
 //
 // Only one entry can be open for output at a time; another call to
 // PutNextEntry closes the current entry and begins the next.
 //
 // Only one entry can be open for output at a time; another call to
 // PutNextEntry closes the current entry and begins the next.
-// 
+//
 // The overload 'bool PutNextEntry(wxArchiveEntry *entry)' takes ownership
 // of the entry object.
 
 // The overload 'bool PutNextEntry(wxArchiveEntry *entry)' takes ownership
 // of the entry object.
 
@@ -207,7 +207,7 @@ public:
         if (m_rep)
             m_rep->AddRef();
     }
         if (m_rep)
             m_rep->AddRef();
     }
-    
+
     ~wxArchiveIterator() {
         if (m_rep)
             m_rep->UnRef();
     ~wxArchiveIterator() {
         if (m_rep)
             m_rep->UnRef();
@@ -225,7 +225,7 @@ public:
         if (it.m_rep)
             it.m_rep.AddRef();
         if (m_rep)
         if (it.m_rep)
             it.m_rep.AddRef();
         if (m_rep)
-            m_rep.UnRef();
+            this->m_rep.UnRef();
         m_rep = it.m_rep;
         return *this;
     }
         m_rep = it.m_rep;
         return *this;
     }
@@ -255,13 +255,13 @@ private:
         typename Arc::entry_type* m_entry;
         T m_value;
         int m_ref;
         typename Arc::entry_type* m_entry;
         T m_value;
         int m_ref;
-        
+
     public:
         Rep(Arc& arc, typename Arc::entry_type* entry)
             : m_arc(arc), m_entry(entry), m_value(), m_ref(1) { }
         ~Rep()
             { delete m_entry; }
     public:
         Rep(Arc& arc, typename Arc::entry_type* entry)
             : m_arc(arc), m_entry(entry), m_value(), m_ref(1) { }
         ~Rep()
             { delete m_entry; }
-        
+
         void AddRef() {
             m_ref++;
         }
         void AddRef() {
             m_ref++;
         }
@@ -278,7 +278,7 @@ private:
                 return NULL;
             }
             if (m_ref > 1) {
                 return NULL;
             }
             if (m_ref > 1) {
-                m_ref--; 
+                m_ref--;
                 return new Rep(m_arc, entry);
             }
             delete m_entry;
                 return new Rep(m_arc, entry);
             }
             delete m_entry;
@@ -341,10 +341,13 @@ public:
         const wxString& name,
         wxPathFormat format = wxPATH_NATIVE) const = 0;
 
         const wxString& name,
         wxPathFormat format = wxPATH_NATIVE) const = 0;
 
+    // FIXME-UTF8: remove these from this file, they are used for ANSI
+    //             build only
     void SetConv(wxMBConv& conv) { m_pConv = &conv; }
     void SetConv(wxMBConv& conv) { m_pConv = &conv; }
-    wxMBConv& GetConv() const { return *m_pConv; }
+    wxMBConv& GetConv() const
+        { if (m_pConv) return *m_pConv; else return wxConvLocal; }
 
 
-    static const wxArchiveClassFactory *Find(const wxChar *protocol,
+    static const wxArchiveClassFactory *Find(const wxString& protocol,
                                              wxStreamProtocolType type
                                              = wxSTREAM_PROTOCOL);
 
                                              wxStreamProtocolType type
                                              = wxSTREAM_PROTOCOL);
 
@@ -363,7 +366,7 @@ protected:
     virtual wxArchiveInputStream  *DoNewStream(wxInputStream *stream) const = 0;
     virtual wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const = 0;
 
     virtual wxArchiveInputStream  *DoNewStream(wxInputStream *stream) const = 0;
     virtual wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const = 0;
 
-    wxArchiveClassFactory() : m_pConv(&wxConvLocal), m_next(this) { }
+    wxArchiveClassFactory() : m_pConv(NULL), m_next(this) { }
     wxArchiveClassFactory& operator=(const wxArchiveClassFactory& WXUNUSED(f))
         { return *this; }
 
     wxArchiveClassFactory& operator=(const wxArchiveClassFactory& WXUNUSED(f))
         { return *this; }