]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/archive.h
Make the CreateTool factories be public so they can be used from application code
[wxWidgets.git] / interface / wx / archive.h
index cb2069dc6057b9d10042def7503499b759776014..bc67f60c738d4efaed718ed022726a5507c13e65 100644 (file)
@@ -3,12 +3,11 @@
 // Purpose:     interface of wxArchive* classes
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
     @class wxArchiveInputStream
-    @wxheader{archive.h}
 
     This is an abstract base class which serves as a common interface to
     archive input streams such as wxZipInputStream.
@@ -23,7 +22,7 @@
     When there are no more entries, GetNextEntry() returns @NULL and sets Eof().
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxArchiveEntry, wxArchiveOutputStream
 */
@@ -57,7 +56,6 @@ public:
 
 /**
     @class wxArchiveOutputStream
-    @wxheader{archive.h}
 
     This is an abstract base class which serves as a common interface to
     archive output streams such as wxZipOutputStream.
@@ -67,7 +65,7 @@ public:
     Another call to PutNextEntry() closes the current entry and begins the next.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxArchiveEntry, wxArchiveInputStream
 */
@@ -158,14 +156,13 @@ public:
 
 /**
     @class wxArchiveEntry
-    @wxheader{archive.h}
 
     This is an abstract base class which serves as a common interface to
     archive entry classes such as wxZipEntry.
     These hold the meta-data (filename, timestamp, etc.), for entries
     in archive files such as zips and tars.
 
-    @section wxarchiveentry_nonseekable About non-seekable streams
+    @section archiveentry_nonseekable About non-seekable streams
 
     This information applies only when reading archives from non-seekable streams.
     When the stream is seekable GetNextEntry() returns a fully populated wxArchiveEntry.
@@ -173,7 +170,7 @@ public:
 
     For generic programming, when the worst case must be assumed, you can rely on
     all the fields of wxArchiveEntry being fully populated when
-    wxArchiveInputStream::GetNextEntry() returns, with the the following exceptions:
+    wxArchiveInputStream::GetNextEntry() returns, with the following exceptions:
 
     @li GetSize(): guaranteed to be available after the entry has been read to Eof(),
         or CloseEntry() has been called;
@@ -181,7 +178,7 @@ public:
         been reached, i.e. after GetNextEntry() returns NULL and Eof() is true.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, @ref overview_archive_generic,
          wxArchiveInputStream, wxArchiveOutputStream, wxArchiveNotifier
@@ -303,20 +300,9 @@ public:
 };
 
 
-/**
-    Type of stream enumeration; used by wxArchiveClassFactory methods.
-*/
-enum wxStreamProtocolType
-{
-    wxSTREAM_PROTOCOL,  //!< wxFileSystem protocol (should be only one)
-    wxSTREAM_MIMETYPE,  //!< MIME types the stream handles
-    wxSTREAM_ENCODING,  //!< Not used for archives
-    wxSTREAM_FILEEXT    //!< File extensions the stream handles
-};
 
 /**
     @class wxArchiveClassFactory
-    @wxheader{archive.h}
 
     Allows the creation of streams to handle archive formats such as zip and tar.
 
@@ -336,7 +322,7 @@ enum wxStreamProtocolType
     wxArchiveClassFactory::GetFirst() and wxArchiveClassFactory::GetNext().
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, @ref overview_archive_generic, wxArchiveEntry,
          wxArchiveInputStream, wxArchiveOutputStream, wxFilterClassFactory
@@ -351,7 +337,7 @@ public:
         When using wxSTREAM_FILEEXT for the second parameter, the first parameter
         can be a complete filename rather than just an extension.
     */
-    bool CanHandle(const wxChar* protocol,
+    bool CanHandle(const wxString& protocol,
                    wxStreamProtocolType type = wxSTREAM_PROTOCOL) const;
 
     /**
@@ -362,7 +348,7 @@ public:
         When using wxSTREAM_FILEEXT for the second parameter, the first parameter
         can be a complete filename rather than just an extension.
     */
-    static const wxArchiveClassFactory* Find(const wxChar* protocol,
+    static const wxArchiveClassFactory* Find(const wxString& protocol,
             wxStreamProtocolType type = wxSTREAM_PROTOCOL);
 
     /**
@@ -370,7 +356,7 @@ public:
         translating meta-data. The initial default, set by the constructor,
         is wxConvLocal.
     */
-    wxMBConv GetConv() const;
+    wxMBConv& GetConv() const;
 
     /**
         Sets the wxMBConv object that the created streams will use when
@@ -388,7 +374,7 @@ public:
         const wxArchiveClassFactory *factory = wxArchiveClassFactory::GetFirst();
 
         while (factory) {
-            list << factory->GetProtocol() << _T("\n");
+            list << factory->GetProtocol() << wxT("\n");
             factory = factory->GetNext();
         }
         @endcode
@@ -396,7 +382,7 @@ public:
         GetFirst() and GetNext() return a pointer to a factory or @NULL if no more
         are available. They do not give away ownership of the factory.
     */
-    static const wxArchiveClassFactory* GetFirst() const;
+    static const wxArchiveClassFactory* GetFirst();
     const wxArchiveClassFactory* GetNext() const;
     //@}
 
@@ -404,8 +390,8 @@ public:
         Calls the static GetInternalName() function for the archive entry type,
         for example wxZipEntry::GetInternalName.
     */
-    wxString GetInternalName(const wxString& name,
-                             wxPathFormat format = wxPATH_NATIVE) const;
+    virtual wxString GetInternalName(const wxString& name,
+                                     wxPathFormat format = wxPATH_NATIVE) const = 0;
 
     /**
         Returns the wxFileSystem protocol supported by this factory.
@@ -425,10 +411,10 @@ public:
         const wxChar *const *p;
 
         for (p = factory->GetProtocols(wxSTREAM_FILEEXT); *p; p++)
-            list << *p << _T("\n");
-        @encode
+            list << *p << wxT("\n");
+        @endcode
     */
-    const wxChar* const* GetProtocols(wxStreamProtocolType type = wxSTREAM_PROTOCOL) const;
+    virtual const wxChar** GetProtocols(wxStreamProtocolType type = wxSTREAM_PROTOCOL) const = 0;
 
     /**
         Create a new wxArchiveEntry object of the appropriate type.
@@ -476,7 +462,6 @@ public:
 
 /**
     @class wxArchiveNotifier
-    @wxheader{archive.h}
 
     If you need to know when a wxArchiveInputStream updates a wxArchiveEntry
     object, you can create a notifier by deriving from this abstract base class,
@@ -493,7 +478,7 @@ public:
     See @ref overview_archive_noseek.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive_noseek, wxArchiveEntry, wxArchiveInputStream,
          wxArchiveOutputStream
@@ -504,14 +489,13 @@ public:
     /**
         This method must be overridden in your derived class.
     */
-    void OnEntryUpdated(class wxArchiveEntry& entry);
+    virtual void OnEntryUpdated(wxArchiveEntry& entry) = 0;
 };
 
 
 
 /**
     @class wxArchiveIterator
-    @wxheader{archive.h}
 
     An input iterator template class that can be used to transfer an archive's
     catalogue to a container. It is only available if wxUSE_STL is set to 1
@@ -519,7 +503,7 @@ public:
     supports member templates.
 
     @code
-    template class Arc, class T = typename Arc::entry_type*
+    template<class Arc, class T = typename Arc::entry_type*>
     class wxArchiveIterator
     {
         // this constructor creates an 'end of sequence' object
@@ -534,8 +518,8 @@ public:
 
     The first template parameter should be the type of archive input stream
     (e.g. wxArchiveInputStream) and the second can either be a pointer to an entry
-    (e.g. wxArchiveEntry*), or a string/pointer pair (e.g. std::pairwxString,
-    wxArchiveEntry*).
+    (e.g. wxArchiveEntry*), or a string/pointer pair
+    (e.g. std::pair<wxString,wxArchiveEntry*>).
 
     The @c wx/archive.h header defines the following typedefs:
 
@@ -603,7 +587,7 @@ public:
     @endcode
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see wxArchiveEntry, wxArchiveInputStream, wxArchiveOutputStream
 */