webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
MemoryStream Class Reference

Represents an in-memory input byte stream. More...

#include <memorystream.h>

Inheritance diagram for MemoryStream:

Public Types

typedef char Ch
 

Public Member Functions

 MemoryStream (const Ch *src, size_t size)
 
Ch Peek () const
 
Ch Take ()
 
size_t Tell () const
 
ChPutBegin ()
 
void Put (Ch)
 
void Flush ()
 
size_t PutEnd (Ch *)
 
const ChPeek4 () const
 
virtual HRESULT STDMETHODCALLTYPE QueryInterface (_In_ REFIID riid, _COM_Outptr_ void **ppvObject)
 
virtual ULONG STDMETHODCALLTYPE AddRef ()
 
virtual ULONG STDMETHODCALLTYPE Release ()
 
virtual HRESULT STDMETHODCALLTYPE Read (void *pv, ULONG cb, ULONG *pcbRead)
 
virtual HRESULT STDMETHODCALLTYPE Write (const void *pv, ULONG cb, ULONG *pcbWritten)
 
virtual HRESULT STDMETHODCALLTYPE Seek (LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
 
virtual HRESULT STDMETHODCALLTYPE SetSize (ULARGE_INTEGER libNewSize)
 
virtual HRESULT STDMETHODCALLTYPE CopyTo (IStream *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)
 
virtual HRESULT STDMETHODCALLTYPE Commit (DWORD grfCommitFlags)
 
virtual HRESULT STDMETHODCALLTYPE Revert ()
 
virtual HRESULT STDMETHODCALLTYPE LockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
 
virtual HRESULT STDMETHODCALLTYPE UnlockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
 
virtual HRESULT STDMETHODCALLTYPE Stat (_Out_ STATSTG *, DWORD grfStatFlag)
 
virtual HRESULT STDMETHODCALLTYPE Clone (_COM_Outptr_ IStream **ppstm)
 

Static Public Member Functions

static COMPtr< MemoryStreamcreateInstance (PassRefPtr< WebCore::SharedBuffer > buffer)
 

Public Attributes

const Chsrc_
 Current read position. More...
 
const Chbegin_
 Original head of the string. More...
 
const Chend_
 End of stream. More...
 
size_t size_
 Size of the stream. More...
 

Protected Member Functions

 MemoryStream (PassRefPtr< WebCore::SharedBuffer > buffer)
 
 ~MemoryStream ()
 

Protected Attributes

RefPtr< WebCore::SharedBufferm_buffer
 
size_t m_pos { 0 }
 
ULONG m_refCount { 0 }
 

Detailed Description

Represents an in-memory input byte stream.

This class is mainly for being wrapped by EncodedInputStream or AutoUTFInputStream.

It is similar to FileReadBuffer but the source is an in-memory buffer instead of a file.

Differences between MemoryStream and StringStream:

  1. StringStream has encoding but MemoryStream is a byte stream.
  2. MemoryStream needs size of the source buffer and the buffer don't need to be null terminated. StringStream assume null-terminated string as source.
  3. MemoryStream supports Peek4() for encoding detection. StringStream is specified with an encoding so it should not have Peek4().
    Note
    implements Stream concept

Member Typedef Documentation

◆ Ch

Constructor & Destructor Documentation

◆ MemoryStream() [1/2]

MemoryStream::MemoryStream ( const Ch src,
size_t  size 
)
inline

◆ MemoryStream() [2/2]

MemoryStream::MemoryStream ( PassRefPtr< WebCore::SharedBuffer buffer)
protected

◆ ~MemoryStream()

MemoryStream::~MemoryStream ( )
protected

Member Function Documentation

◆ AddRef()

ULONG MemoryStream::AddRef ( void  )
virtual

◆ Clone()

HRESULT MemoryStream::Clone ( _COM_Outptr_ IStream **  ppstm)
virtual

◆ Commit()

HRESULT MemoryStream::Commit ( DWORD  grfCommitFlags)
virtual

◆ CopyTo()

HRESULT MemoryStream::CopyTo ( IStream *  pstm,
ULARGE_INTEGER  cb,
ULARGE_INTEGER *  pcbRead,
ULARGE_INTEGER *  pcbWritten 
)
virtual

◆ createInstance()

COMPtr< MemoryStream > MemoryStream::createInstance ( PassRefPtr< WebCore::SharedBuffer buffer)
static

◆ Flush()

void MemoryStream::Flush ( )
inline

◆ LockRegion()

HRESULT MemoryStream::LockRegion ( ULARGE_INTEGER  libOffset,
ULARGE_INTEGER  cb,
DWORD  dwLockType 
)
virtual

◆ Peek()

Ch MemoryStream::Peek ( ) const
inline

◆ Peek4()

const Ch* MemoryStream::Peek4 ( ) const
inline

◆ Put()

void MemoryStream::Put ( Ch  )
inline

◆ PutBegin()

Ch* MemoryStream::PutBegin ( )
inline

◆ PutEnd()

size_t MemoryStream::PutEnd ( Ch )
inline

◆ QueryInterface()

HRESULT MemoryStream::QueryInterface ( _In_ REFIID  riid,
_COM_Outptr_ void **  ppvObject 
)
virtual

◆ Read()

HRESULT MemoryStream::Read ( void pv,
ULONG  cb,
ULONG pcbRead 
)
virtual

◆ Release()

ULONG MemoryStream::Release ( void  )
virtual

◆ Revert()

HRESULT MemoryStream::Revert ( )
virtual

◆ Seek()

HRESULT MemoryStream::Seek ( LARGE_INTEGER  dlibMove,
DWORD  dwOrigin,
ULARGE_INTEGER *  plibNewPosition 
)
virtual

◆ SetSize()

HRESULT MemoryStream::SetSize ( ULARGE_INTEGER  libNewSize)
virtual

◆ Stat()

HRESULT MemoryStream::Stat ( _Out_ STATSTG *  pstatstg,
DWORD  grfStatFlag 
)
virtual

◆ Take()

Ch MemoryStream::Take ( )
inline

◆ Tell()

size_t MemoryStream::Tell ( ) const
inline

◆ UnlockRegion()

HRESULT MemoryStream::UnlockRegion ( ULARGE_INTEGER  libOffset,
ULARGE_INTEGER  cb,
DWORD  dwLockType 
)
virtual

◆ Write()

HRESULT MemoryStream::Write ( const void pv,
ULONG  cb,
ULONG pcbWritten 
)
virtual

Member Data Documentation

◆ begin_

const Ch* MemoryStream::begin_

Original head of the string.

◆ end_

const Ch* MemoryStream::end_

End of stream.

◆ m_buffer

RefPtr<WebCore::SharedBuffer> MemoryStream::m_buffer
protected

◆ m_pos

size_t MemoryStream::m_pos { 0 }
protected

◆ m_refCount

ULONG MemoryStream::m_refCount { 0 }
protected

◆ size_

size_t MemoryStream::size_

Size of the stream.

◆ src_

const Ch* MemoryStream::src_

Current read position.


The documentation for this class was generated from the following files: