| Version: 3.0.1

- Main Page
- Related Pages
- Categories
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | List of all members
wxMemoryFSHandler Class Reference
Virtual File System

`#include <wx/fs_mem.h>`

Inheritance diagram for wxMemoryFSHandler:
[legend]

## Detailed Description

This wxFileSystem handler can store arbitrary data in memory stream and make them accessible via an URL.

It is particularly suitable for storing bitmaps from resources or included XPM files so that they can be used with wxHTML or wxWebView.

Filenames are prefixed with `"memory:"`, e.g. `"memory:myfile.html"`.

Example:

#ifndef __WXMSW__
#include "logo.xpm"
#endif
void MyFrame::OnAbout(wxCommandEvent&)
{
wxFileSystem::AddHandler(new wxMemoryFSHandler);
wxMemoryFSHandler::AddFile("logo.png", wxBITMAP(logo), wxBITMAP_TYPE_PNG);
wxMemoryFSHandler::AddFile("about.htm",
"<html><body>About: "
"<img src=\"memory:logo.png\"></body></html>");
wxDialog dlg(this, -1, wxString(_("About")));
wxBoxSizer *topsizer;
topsizer = new wxBoxSizer(wxVERTICAL);
#ifdef USE_WEBVIEW
wxWebView* browser = wxWebView::New(&dlg, wxID_ANY, wxWebViewDefaultURLStr,
wxDefaultPosition, wxSize(380, 160));
browser->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
browser->LoadURL("memory:about.htm");
#else // Use wxHtml
wxHtmlWindow *browser;
browser = new wxHtmlWindow(&dlg, -1, wxDefaultPosition,
wxSize(380, 160), wxHW_SCROLLBAR_NEVER);
browser->SetBorders(0);
browser->LoadPage("memory:about.htm");
browser->SetSize(browser->GetInternalRepresentation()->GetWidth(),
browser->GetInternalRepresentation()->GetHeight());
#endif
topsizer->Add(browser, 1, wxALL, 10);
topsizer->Add(new wxStaticLine(&dlg, -1), 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
topsizer->Add(new wxButton(&dlg, wxID_OK, "Ok"),
0, wxALL | wxALIGN_RIGHT, 15);
dlg.SetAutoLayout(true);
dlg.SetSizer(topsizer);
topsizer->Fit(&dlg);
dlg.Centre();
dlg.ShowModal();
wxMemoryFSHandler::RemoveFile("logo.png");
wxMemoryFSHandler::RemoveFile("about.htm");
}

##

Library: wxBase
Category: Virtual File System

See Also
  wxMemoryFSHandler::AddFileWithMimeType

## Public Member Functions

| wxMemoryFSHandler ()
| Constructor.
Public Member Functions inherited from wxFileSystemHandler
| wxFileSystemHandler ()
| Constructor.
virtual bool | CanOpen (const wxString &location)=0
| Returns true if the handler is able to open this file.
virtual wxString | FindFirst (const wxString &wildcard, int flags=0)
| Works like wxFindFirstFile().
virtual wxString | FindNext ()
| Returns next filename that matches parameters passed to wxFileSystem::FindFirst.
virtual wxFSFile * | OpenFile (wxFileSystem &fs, const wxString &location)=0
| Opens the file and returns wxFSFile pointer or NULL if failed.
Public Member Functions inherited from wxObject
| wxObject ()
| Default ctor; initializes to NULL the internal reference data.
| wxObject (const wxObject &other)
| Copy ctor.
virtual | ~wxObject ()
| Destructor.
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).
wxObjectRefData * | GetRefData () const
| Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
bool | IsKindOf (const wxClassInfo *info) const
| Determines whether this class is a subclass of (or the same class as) the given class.
bool | IsSameAs (const wxObject &obj) const
| Returns true if this object has the same data pointer as obj.
void | Ref (const wxObject &clone)
| Makes this object refer to the data in clone.
void | SetRefData (wxObjectRefData *data)
| Sets the wxObject::m_refData pointer.
void | UnRef ()
| Decrements the reference count in the associated data, and if it is zero, deletes the data.
void | UnShare ()
| This is the same of AllocExclusive() but this method is public.
void | operator delete (void *buf)
| The delete operator is defined for debugging versions of the library only, when the identifier `WXDEBUG` is defined.
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.

## Static Public Member Functions

static void | RemoveFile (const wxString &filename)
| Removes a file from memory FS and frees the occupied memory.
static void | AddFile (const wxString &filename, wxImage &image, wxBitmapType type)
| Adds a file to the list of the files stored in memory.
static void | AddFile (const wxString &filename, const wxBitmap &bitmap, wxBitmapType type)
| Adds a file to the list of the files stored in memory.
static void | AddFileWithMimeType (const wxString &filename, const wxString &textdata, const wxString &mimetype)
| Like AddFile(), but lets you explicitly specify added file's MIME type.
static void | AddFileWithMimeType (const wxString &filename, const void *binarydata, size_t size, const wxString &mimetype)
| Like AddFile(), but lets you explicitly specify added file's MIME type.
Static Public Member Functions inherited from wxFileSystemHandler
static wxString | GetMimeTypeFromExt (const wxString &location)
| Returns the MIME type based on extension of location.

## Additional Inherited Members

Protected Member Functions inherited from wxObject
void | AllocExclusive ()
| Ensure that this object's data is not shared with any other object.
virtual wxObjectRefData * | CreateRefData () const
| Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it.
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.
Static Protected Member Functions inherited from wxFileSystemHandler
static wxString | GetAnchor (const wxString &location)
| Returns the anchor if present in the location.
static wxString | GetLeftLocation (const wxString &location)
| Returns the left location string extracted from location.
static wxString | GetProtocol (const wxString &location)
| Returns the protocol string extracted from location.
static wxString | GetRightLocation (const wxString &location)
| Returns the right location string extracted from location.
Protected Attributes inherited from wxObject
wxObjectRefData * | m_refData
| Pointer to an object which is the object's reference-counted data.

## Constructor & Destructor Documentation

wxMemoryFSHandler::wxMemoryFSHandler | ( |  | ) |

Constructor.

## Member Function Documentation

static void wxMemoryFSHandler::AddFile | ( | const wxString & | filename,
|  | wxImage & | image,
|  | wxBitmapType | type
| ) |  |

static

Adds a file to the list of the files stored in memory.

Stored data (bitmap, text or raw data) will be copied into private memory stream and available under name `"memory:"` + filename.

Note
  you must use a type value (aka image format) that wxWidgets can save (e.g. JPG, PNG, see wxImage documentation)!

See Also
  AddFileWithMimeType()

static void wxMemoryFSHandler::AddFile | ( | const wxString & | filename,
|  | const wxBitmap & | bitmap,
|  | wxBitmapType | type
| ) |  |

static

Adds a file to the list of the files stored in memory.

Stored data (bitmap, text or raw data) will be copied into private memory stream and available under name `"memory:"` + filename.

Note
  you must use a type value (aka image format) that wxWidgets can save (e.g. JPG, PNG, see wxImage documentation)!

See Also
  AddFileWithMimeType()

static void wxMemoryFSHandler::AddFileWithMimeType | ( | const wxString & | filename,
|  | const wxString & | textdata,
|  | const wxString & | mimetype
| ) |  |

static

Like AddFile(), but lets you explicitly specify added file's MIME type.

This version should be used whenever you know the MIME type, because it makes accessing the files faster.

Since
  2.8.5

See Also
  AddFile()

static void wxMemoryFSHandler::AddFileWithMimeType | ( | const wxString & | filename,
|  | const void * | binarydata,
|  | size_t | size,
|  | const wxString & | mimetype
| ) |  |

static

Like AddFile(), but lets you explicitly specify added file's MIME type.

This version should be used whenever you know the MIME type, because it makes accessing the files faster.

Since
  2.8.5

See Also
  AddFile()

static void wxMemoryFSHandler::RemoveFile | ( | const wxString & | filename | ) |

static

Removes a file from memory FS and frees the occupied memory.