1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        src/common/arcfind.cpp
3 // Purpose:     Streams for archive formats
4 // Author:      Mike Wetherell
5 // RCS-ID:      $Id: arcfind.cpp 42508 2006-10-27 09:53:38Z MW $
6 // Copyright:   (c) Mike Wetherell
7 // Licence:     wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9 
10 // For compilers that support precompilation, includes "wx.h".
11 #include "wx/wxprec.h"
12 
13 #ifdef __BORLANDC__
14     #pragma hdrstop
15 #endif
16 
17 #if wxUSE_ARCHIVE_STREAMS
18 
19 #include "wx/archive.h"
20 
21 // These functions are in a separate file so that statically linked apps
22 // that do not call them to search for archive handlers will only link in
23 // the archive classes they use.
24 
25 const wxArchiveClassFactory *
Find(const wxChar * protocol,wxStreamProtocolType type)26 wxArchiveClassFactory::Find(const wxChar *protocol, wxStreamProtocolType type)
27 {
28     for (const wxArchiveClassFactory *f = GetFirst(); f; f = f->GetNext())
29         if (f->CanHandle(protocol, type))
30             return f;
31 
32     return NULL;
33 }
34 
35 // static
GetFirst()36 const wxArchiveClassFactory *wxArchiveClassFactory::GetFirst()
37 {
38     if (!sm_first)
39         wxUseArchiveClasses();
40     return sm_first;
41 }
42 
43 #endif // wxUSE_ARCHIVE_STREAMS
44