Lumino
ln::Stream Class Referenceabstract

さまざまなソースからのデータの読み書きをカプセル化するための汎用クラスです。 More...

#include <Stream.hpp>

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

Public Member Functions

virtual bool canRead () const =0
 読み取りをサポートするかどうかを確認します。
 
virtual bool canWrite () const =0
 書き込みをサポートするかどうかを確認します。
 
virtual int64_t length () const =0
 ストリームの長さ (バイト単位) を取得します。 More...
 
virtual int64_t position () const =0
 ストリーム内の現在位置 (ファイルポインタの位置) を取得します。 More...
 
virtual size_t read (void *buffer, size_t byteCount)=0
 バイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの現在位置を進めます。 More...
 
virtual void write (const void *data, size_t byteCount)=0
 現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数の分だけストリームの現在位置を進めます。 More...
 
virtual void seek (int64_t offset, SeekOrigin origin)=0
 ストリームの現在位置を指定した位置に設定します。 More...
 
virtual void flush ()=0
 ストリームの内部バッファのデータを全てターゲット(ファイル等)に書き込み、内部バッファをクリアします。
 

Additional Inherited Members

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

Detailed Description

さまざまなソースからのデータの読み書きをカプセル化するための汎用クラスです。

Member Function Documentation

◆ length()

virtual int64_t ln::Stream::length ( ) const
pure virtual

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

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

Implemented in ln::MemoryStream, and ln::FileStream.

◆ position()

virtual int64_t ln::Stream::position ( ) const
pure virtual

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

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

Implemented in ln::MemoryStream, and ln::FileStream.

◆ read()

virtual size_t ln::Stream::read ( void *  buffer,
size_t  byteCount 
)
pure virtual

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

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

Implemented in ln::MemoryStream, and ln::FileStream.

◆ seek()

virtual void ln::Stream::seek ( int64_t  offset,
SeekOrigin  origin 
)
pure virtual

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

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

Implemented in ln::MemoryStream, and ln::FileStream.

◆ write()

virtual void ln::Stream::write ( const void *  data,
size_t  byteCount 
)
pure virtual

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

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

Implemented in ln::MemoryStream, and ln::FileStream.


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