1%
2% automatically generated by HelpGen from
3% filesystemhandler.tex at 21/Mar/99 23:00:52
4%
5
6\section{\class{wxFileSystemHandler}}\label{wxfilesystemhandler}
7
8Classes derived from wxFileSystemHandler are used
9to access virtual file systems. Its public interface consists
10of two methods: \helpref{CanOpen}{wxfilesystemhandlercanopen} 
11and \helpref{OpenFile}{wxfilesystemhandleropenfile}. 
12It provides additional protected methods to simplify the process
13of opening the file: GetProtocol, GetLeftLocation, GetRightLocation,
14GetAnchor, GetMimeTypeFromExt.
15
16Please have a look at \helpref{overview}{fs} if you don't know how locations
17are constructed.
18
19Also consult \helpref{list of available handlers}{fs}.
20
21\perlnote{In wxPerl, you need to derive your file system handler class
22from Wx::PlFileSystemHandler.}
23
24\wxheading{Notes}
25
26\begin{itemize}\itemsep=0pt
27\item The handlers are shared by all instances of wxFileSystem.
28\item wxHTML library provides handlers for local files and HTTP or FTP protocol
29\item The {\it location} parameter passed to OpenFile or CanOpen methods
30is always an {\bf absolute} path. You don't need to check the FS's current path.
31\end{itemize}
32
33\wxheading{Derived from}
34
35\helpref{wxObject}{wxobject}
36
37\wxheading{Include files}
38
39<wx/filesys.h>
40
41\wxheading{See also}
42
43\helpref{wxFileSystem}{wxfilesystem}, 
44\helpref{wxFSFile}{wxfsfile}, 
45\helpref{Overview}{fs}
46
47\latexignore{\rtfignore{\wxheading{Members}}}
48
49
50\membersection{wxFileSystemHandler::wxFileSystemHandler}\label{wxfilesystemhandlerwxfilesystemhandler}
51
52\func{}{wxFileSystemHandler}{\void}
53
54Constructor.
55
56\membersection{wxFileSystemHandler::CanOpen}\label{wxfilesystemhandlercanopen}
57
58\func{virtual bool}{CanOpen}{\param{const wxString\& }{location}}
59
60Returns true if the handler is able to open this file. This function doesn't
61check whether the file exists or not, it only checks if it knows the protocol.
62Example:
63
64\begin{verbatim}
65bool MyHand::CanOpen(const wxString& location) 
66{
67    return (GetProtocol(location) == "http");
68}
69\end{verbatim}
70
71Must be overridden in derived handlers.
72
73\membersection{wxFileSystemHandler::GetAnchor}\label{wxfilesystemhandlergetanchor}
74
75\constfunc{wxString}{GetAnchor}{\param{const wxString\& }{location}}
76
77Returns the anchor if present in the location.
78See \helpref{wxFSFile}{wxfsfilegetanchor} for details.
79
80Example: GetAnchor("index.htm\#chapter2") == "chapter2"
81
82{\bf Note:} the anchor is NOT part of the left location.
83
84\membersection{wxFileSystemHandler::GetLeftLocation}\label{wxfilesystemhandlergetleftlocation}
85
86\constfunc{wxString}{GetLeftLocation}{\param{const wxString\& }{location}}
87
88Returns the left location string extracted from {\it location}. 
89
90Example: GetLeftLocation("file:myzipfile.zip\#zip:index.htm") == "file:myzipfile.zip"
91
92\membersection{wxFileSystemHandler::GetMimeTypeFromExt}\label{wxfilesystemhandlergetmimetypefromext}
93
94\func{wxString}{GetMimeTypeFromExt}{\param{const wxString\& }{location}}
95
96Returns the MIME type based on {\bf extension} of {\it location}. (While wxFSFile::GetMimeType
97returns real MIME type - either extension-based or queried from HTTP.)
98
99Example : GetMimeTypeFromExt("index.htm") == "text/html"
100
101\membersection{wxFileSystemHandler::GetProtocol}\label{wxfilesystemhandlergetprotocol}
102
103\constfunc{wxString}{GetProtocol}{\param{const wxString\& }{location}}
104
105Returns the protocol string extracted from {\it location}. 
106
107Example: GetProtocol("file:myzipfile.zip\#zip:index.htm") == "zip"
108
109\membersection{wxFileSystemHandler::GetRightLocation}\label{wxfilesystemhandlergetrightlocation}
110
111\constfunc{wxString}{GetRightLocation}{\param{const wxString\& }{location}}
112
113Returns the right location string extracted from {\it location}. 
114
115Example : GetRightLocation("file:myzipfile.zip\#zip:index.htm") == "index.htm"
116
117\membersection{wxFileSystemHandler::FindFirst}\label{wxfilesystemhandlerfindfirst}
118
119\func{virtual wxString}{FindFirst}{\param{const wxString\& }{wildcard}, \param{int }{flags = 0}}
120
121Works like \helpref{wxFindFirstFile}{wxfindfirstfile}. Returns name of the first
122filename (within filesystem's current path) that matches {\it wildcard}. {\it flags} may be one of
123wxFILE (only files), wxDIR (only directories) or 0 (both).
124
125This method is only called if \helpref{CanOpen}{wxfilesystemhandlercanopen} returns true.
126
127\membersection{wxFileSystemHandler::FindNext}\label{wxfilesystemhandlerfindnext}
128
129\func{virtual wxString}{FindNext}{\void}
130
131Returns next filename that matches parameters passed to \helpref{FindFirst}{wxfilesystemfindfirst}.
132
133This method is only called if \helpref{CanOpen}{wxfilesystemhandlercanopen} returns true and FindFirst
134returned a non-empty string.
135
136\membersection{wxFileSystemHandler::OpenFile}\label{wxfilesystemhandleropenfile}
137
138\func{virtual wxFSFile*}{OpenFile}{\param{wxFileSystem\& }{fs}, \param{const wxString\& }{location}}
139
140Opens the file and returns wxFSFile pointer or NULL if failed.
141
142Must be overridden in derived handlers.
143
144\wxheading{Parameters}
145
146\docparam{fs}{Parent FS (the FS from that OpenFile was called). See ZIP handler
147for details of how to use it.}
148
149\docparam{location}{The {\bf absolute} location of file.}
150
151