#include <wx/filesys.h>
This class represents a single file opened by wxFileSystem.
It provides more information than wxWidgets' input streams (stream, filename, mime type, anchor).
Public Member Functions | |
wxFSFile (wxInputStream *stream, const wxString &location, const wxString &mimetype, const wxString &anchor, wxDateTime modif) | |
Constructor. More... | |
wxInputStream * | DetachStream () |
Detaches the stream from the wxFSFile object. More... | |
const wxString & | GetAnchor () const |
Returns anchor (if present). More... | |
const wxString & | GetLocation () const |
Returns full location of the file, including path and protocol. More... | |
const wxString & | GetMimeType () const |
Returns the MIME type of the content of this file. More... | |
wxDateTime | GetModificationTime () const |
Returns time when this file was modified. More... | |
wxInputStream * | GetStream () const |
Returns pointer to the stream. More... | |
Public Member Functions inherited from wxObject | |
wxObject () | |
Default ctor; initializes to NULL the internal reference data. More... | |
wxObject (const wxObject &other) | |
Copy ctor. More... | |
virtual | ~wxObject () |
Destructor. More... | |
virtual wxClassInfo * | GetClassInfo () const |
This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More... | |
wxObjectRefData * | GetRefData () const |
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More... | |
bool | IsKindOf (const wxClassInfo *info) const |
Determines whether this class is a subclass of (or the same class as) the given class. More... | |
bool | IsSameAs (const wxObject &obj) const |
Returns true if this object has the same data pointer as obj. More... | |
void | Ref (const wxObject &clone) |
Makes this object refer to the data in clone. More... | |
void | SetRefData (wxObjectRefData *data) |
Sets the wxObject::m_refData pointer. More... | |
void | UnRef () |
Decrements the reference count in the associated data, and if it is zero, deletes the data. More... | |
void | UnShare () |
This is the same of AllocExclusive() but this method is public. More... | |
void | operator delete (void *buf) |
The delete operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined. More... | |
void * | operator new (size_t size, const wxString &filename=NULL, int lineNum=0) |
The new operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from wxObject | |
void | AllocExclusive () |
Ensure that this object's data is not shared with any other object. More... | |
virtual wxObjectRefData * | CreateRefData () const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More... | |
virtual wxObjectRefData * | CloneRefData (const wxObjectRefData *data) const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More... | |
Protected Attributes inherited from wxObject | |
wxObjectRefData * | m_refData |
Pointer to an object which is the object's reference-counted data. More... | |
wxFSFile::wxFSFile | ( | wxInputStream * | stream, |
const wxString & | location, | ||
const wxString & | mimetype, | ||
const wxString & | anchor, | ||
wxDateTime | modif | ||
) |
Constructor.
You probably won't use it. See the Note for details.
It is seldom used by the application programmer but you will need it if you are writing your own virtual FS. For example you may need something similar to wxMemoryInputStream, but because wxMemoryInputStream doesn't free the memory when destroyed and thus passing a memory stream pointer into wxFSFile constructor would lead to memory leaks, you can write your own class derived from wxFSFile:
If you are not sure of the meaning of these params, see the description of the GetXXXX() functions.
stream | The input stream that will be used to access data |
location | The full location (aka filename) of the file |
mimetype | MIME type of this file. It may be left empty, in which case the type will be determined from file's extension (location must not be empty in this case). |
anchor | Anchor. See GetAnchor() for details. |
modif | Modification date and time for this file. |
wxInputStream* wxFSFile::DetachStream | ( | ) |
Detaches the stream from the wxFSFile object.
That is, the stream obtained with GetStream() will continue its existence after the wxFSFile object is deleted.
You will have to delete the stream yourself.
const wxString& wxFSFile::GetAnchor | ( | ) | const |
Returns anchor (if present).
The term of anchor can be easily explained using few examples:
index.htm#anchor // 'anchor' is anchor index/wx001.htm // NO anchor here! archive/main.zip#zip:index.htm#global // 'global' archive/main.zip#zip:index.htm // NO anchor here!
Usually an anchor is presented only if the MIME type is 'text/html'. But it may have some meaning with other files; for example myanim.avi#200 may refer to position in animation or reality.wrl::MyView may refer to a predefined view in VRML.
const wxString& wxFSFile::GetLocation | ( | ) | const |
Returns full location of the file, including path and protocol.
Examples:
http://www.wxwidgets.org http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/archive.zip#zip:info.txt file:/home/vasek/index.htm relative-file.htm
const wxString& wxFSFile::GetMimeType | ( | ) | const |
Returns the MIME type of the content of this file.
It is either extension-based (see wxMimeTypesManager) or extracted from HTTP protocol Content-Type header.
wxDateTime wxFSFile::GetModificationTime | ( | ) | const |
Returns time when this file was modified.
wxInputStream* wxFSFile::GetStream | ( | ) | const |
Returns pointer to the stream.
You can use the returned stream to directly access data. You may suppose that the stream provide Seek and GetSize functionality (even in the case of the HTTP protocol which doesn't provide this by default. wxHtml uses local cache to work around this and to speed up the connection).