Lumino
ln::MemoryStream Class Reference

データの読み書き先としてメモリを使用するストリームです。 More...

#include <MemoryStream.hpp>

Inheritance diagram for ln::MemoryStream:
ln::Stream ln::RefObject

Public Member Functions

 MemoryStream (void *buffer, size_t size)
 既存のバッファを参照する、サイズ変更できない MemoryStream を構築します。 More...
 
 MemoryStream (const void *buffer, size_t size, bool copy=false)
 既存のバッファを参照する、サイズ変更できない読み取り専用の MemoryStream を構築します。 More...
 
void * data () const
 データの読み書き先バイト配列の先頭アドレスを取得します。
 
virtual bool canRead () const override
 読み取りをサポートするかどうかを確認します。
 
virtual bool canWrite () const override
 書き込みをサポートするかどうかを確認します。
 
virtual int64_t length () const override
 ストリームの長さ (バイト単位) を取得します。 More...
 
virtual int64_t position () const override
 ストリーム内の現在位置 (ファイルポインタの位置) を取得します。 More...
 
virtual size_t read (void *buffer, size_t byteCount) override
 バイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの現在位置を進めます。 More...
 
virtual void write (const void *data, size_t byteCount) override
 現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数の分だけストリームの現在位置を進めます。 More...
 
virtual void seek (int64_t offset, SeekOrigin origin) override
 ストリームの現在位置を指定した位置に設定します。 More...
 
virtual void flush () override
 ストリームの内部バッファのデータを全てターゲット(ファイル等)に書き込み、内部バッファをクリアします。
 

Additional Inherited Members

- Protected Member Functions inherited from ln::RefObject
virtual void finalize ()
 参照がなくなり、オブジェクトが削除されようとしているときに呼び出されます。実装コードでは仮想関数を呼び出すことができます。主にデストラクタの制限を回避するために使用します。
 

Detailed Description

データの読み書き先としてメモリを使用するストリームです。

Constructor & Destructor Documentation

◆ MemoryStream() [1/2]

ln::MemoryStream::MemoryStream ( void *  buffer,
size_t  size 
)

既存のバッファを参照する、サイズ変更できない MemoryStream を構築します。

Parameters
buffer: バッファの先頭アドレス
size: サイズ(バイト数)

buffer に指定したバッファは、このクラスのインスタンスが存在する間は開放しないでください。

◆ MemoryStream() [2/2]

ln::MemoryStream::MemoryStream ( const void *  buffer,
size_t  size,
bool  copy = false 
)

既存のバッファを参照する、サイズ変更できない読み取り専用の MemoryStream を構築します。

Parameters
buffer: バッファの先頭アドレス
size: サイズ(バイト数)

buffer に指定したバッファは、このクラスのインスタンスが存在する間は開放しないでください。

Member Function Documentation

◆ length()

virtual int64_t ln::MemoryStream::length ( ) const
overridevirtual

ストリームの長さ (バイト単位) を取得します。

Attention
パイプストリームでは、この機能はサポートされません。

Implements ln::Stream.

◆ position()

virtual int64_t ln::MemoryStream::position ( ) const
overridevirtual

ストリーム内の現在位置 (ファイルポインタの位置) を取得します。

Attention
パイプストリームでは、この機能はサポートされません。

Implements ln::Stream.

◆ read()

virtual size_t ln::MemoryStream::read ( void *  buffer,
size_t  byteCount 
)
overridevirtual

バイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの現在位置を進めます。

Parameters
buffer: 読み取ったデータの格納先アドレス
byteCount: 読み取るバイト数
Returns
実際に読み取ったバイト数。EOF に到達している場合は 0 を返します。

Implements ln::Stream.

◆ seek()

virtual void ln::MemoryStream::seek ( int64_t  offset,
SeekOrigin  origin 
)
overridevirtual

ストリームの現在位置を指定した位置に設定します。

Attention
パイプストリームでは、この機能はサポートされません。

Implements ln::Stream.

◆ write()

virtual void ln::MemoryStream::write ( const void *  data,
size_t  byteCount 
)
overridevirtual

現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数の分だけストリームの現在位置を進めます。

Parameters
data: 書き込むデータ
byteCount: バイト数

Implements ln::Stream.


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