This is a combination of running clang-tidy with modernize-use-nullptr check for some ports (GTK, X11, OSX) and manual changes to the ports for which it couldn't be used easily (MSW, DFB) and also manually updating the docs. Also replace NULL with null or nullptr in the comments as this is more consistent with the use of nullptr in the code and makes it simpler to grep for the remaining occurrences of NULL itself. And also use null in the assert messages. Only a few occurrences of "NULL" are still left in non-C files, mostly corresponding to unclear comments or string output which it might not be safe to change.
82 lines
2.6 KiB
C++
82 lines
2.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/private/fileback.h
|
|
// Purpose: Back an input stream with memory or a file
|
|
// Author: Mike Wetherell
|
|
// Copyright: (c) 2006 Mike Wetherell
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_FILEBACK_H__
|
|
#define _WX_FILEBACK_H__
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_FILESYSTEM
|
|
|
|
#include "wx/stream.h"
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Backs an input stream with memory or a file to make it seekable.
|
|
//
|
|
// One or more wxBackedInputStreams can be used to read it's data. The data is
|
|
// reference counted, so stays alive until the last wxBackingFile or
|
|
// wxBackedInputStream using it is destroyed.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_BASE wxBackingFile
|
|
{
|
|
public:
|
|
enum { DefaultBufSize = 16384 };
|
|
|
|
// Takes ownership of stream. If the stream is smaller than bufsize, the
|
|
// backing file is never created and the backing is done with memory.
|
|
wxBackingFile(wxInputStream *stream,
|
|
size_t bufsize = DefaultBufSize,
|
|
const wxString& prefix = wxT("wxbf"));
|
|
|
|
wxBackingFile() : m_impl(nullptr) { }
|
|
~wxBackingFile();
|
|
|
|
wxBackingFile(const wxBackingFile& backer);
|
|
wxBackingFile& operator=(const wxBackingFile& backer);
|
|
|
|
operator bool() const { return m_impl != nullptr; }
|
|
|
|
private:
|
|
class wxBackingFileImpl *m_impl;
|
|
friend class wxBackedInputStream;
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// An input stream to read from a wxBackingFile.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_BASE wxBackedInputStream : public wxInputStream
|
|
{
|
|
public:
|
|
wxBackedInputStream(const wxBackingFile& backer);
|
|
|
|
// If the length of the backer's parent stream is unknown then GetLength()
|
|
// returns wxInvalidOffset until the parent has been read to the end.
|
|
wxFileOffset GetLength() const override;
|
|
|
|
// Returns the length, reading the parent stream to the end if necessary.
|
|
wxFileOffset FindLength() const;
|
|
|
|
bool IsSeekable() const override { return true; }
|
|
|
|
protected:
|
|
size_t OnSysRead(void *buffer, size_t size) override;
|
|
wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) override;
|
|
wxFileOffset OnSysTell() const override;
|
|
|
|
private:
|
|
wxBackingFile m_backer;
|
|
wxFileOffset m_pos;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxBackedInputStream);
|
|
};
|
|
|
|
#endif // wxUSE_FILESYSTEM
|
|
|
|
#endif // _WX_FILEBACK_H__
|