TNB Library
公開メンバ関数 | 全メンバ一覧
IDeserializer 構造体abstract

デシリアライザーインターフェースクラス. [詳解]

#include <TnbSerializer.h>

+ IDeserializer の継承関係図

公開メンバ関数

virtual void GetRaw (size_t size, LPVOID _P) const =0
 [取得] 取得. [詳解]
 
template<typename T >
const IDeserializeroperator>> (T &_t) const
 [取得] 取得. [詳解]
 
virtual ~IDeserializer (void)
 デストラクタ [詳解]
 

詳解

デシリアライザーインターフェースクラス.

基本型、および、 ISerializable を実装したクラス
( ICollectionT もこれを実装しています)、
および、 CStrT 系 はデシリアライズ可能になっています。

シリアライズしたデータは、同じ型、同じ順番でデシリアライズする必要があります。
使用例

    void Foo(IDeserializer& ds)
    {
        int i;
        CStr str;
        ds >> i >> str;         // int と文字列を取り出す。       
    }
 

覚え書き
その他の型(MFCクラスやユーザクラスなど)は以下のようなオペレータを用意することでデシリアライズに対応可能です。

    struct TMyType {    //ユーザクラス
    {
        CStr strKey;
        int  iValue;
    }

    inline const IDeserializer& operator>>(const IDeserializer& ds, TMyType& t)     
    {
        ds >> t.strKey >> t.iValue;
        return sr;
    }
 

必要ファイル
TnbSerializer.h
日付
06/08/17 新規作成
08/04/16 機能整理
14/08/13 仮想デストラクタ実装

TnbSerializer.h225 行目に定義があります。

構築子と解体子

◆ ~IDeserializer()

virtual ~IDeserializer ( void  )
virtual

デストラクタ

TnbSerializer.h265 行目に定義があります。

関数詳解

◆ GetRaw()

virtual void GetRaw ( size_t  size,
LPVOID  _P 
) const
pure virtual

[取得] 取得.

指定データを取得します。

覚え書き
pure関数です。サブクラスでは本メソッドを実装する必要があります。
引数
[in]size取得するデータサイズ(単位BYTE)
[out]_P取得するデータ
例外
CTnbException失敗時は、任意のスローの可能性があります。

IReader, CDeserializeAdapterで実装されています。

◆ operator>>()

const IDeserializer & operator>> ( T &  _t) const

[取得] 取得.

指定データをデシリアライズして取得します。

引数
[out]_tデータ
戻り値
自分の参照
例外
CNotSupportExceptionデシリアライズをサポートしていない型が指定されると、スローされます。
CTnbException失敗時は、任意のスローの可能性があります。

TnbSerializer.h277 行目に定義があります。