クラス テンプレート Onikiri::CheckpointedData< DataType >

#include <CheckpointedData.h>

Onikiri::CheckpointedData< DataType >に対する継承グラフ

Inheritance graph
[凡例]
Onikiri::CheckpointedData< DataType >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

virtual void Allocate (Checkpoint *checkpoint)
virtual void Backup (Checkpoint *checkpoint)
 CheckpointedData ()
virtual void Erase (Checkpoint *checkpoint)
const DataType & GetCurrent () const
DataType & GetCurrent ()
virtual void Initialize (CheckpointMaster *master, CheckpointMaster::Slot slot)
const DataType & operator * () const
DataType & operator * ()
const DataType * operator-> () const
DataType * operator-> ()
virtual void Recover (Checkpoint *checkpoint)
virtual ~CheckpointedData ()

説明

template<typename DataType>
class Onikiri::CheckpointedData< DataType >

CheckpointedData.h44 行で定義されています。


コンストラクタとデストラクタ

template<typename DataType>
Onikiri::CheckpointedData< DataType >::CheckpointedData (  )  [inline]

CheckpointedData.h48 行で定義されています。

00048                            : m_master(0)
00049         {
00050         }

template<typename DataType>
virtual Onikiri::CheckpointedData< DataType >::~CheckpointedData (  )  [inline, virtual]

CheckpointedData.h52 行で定義されています。

00053         {
00054             for( BackupIterator i = m_list.begin(); i != m_list.end(); ++i ){
00055                 DataType* ptr = GetData(i);
00056                 Destroy( ptr );
00057             }
00058             m_list.clear();
00059         }


関数

template<typename DataType>
virtual void Onikiri::CheckpointedData< DataType >::Allocate ( Checkpoint checkpoint  )  [inline, virtual]

Onikiri::CheckpointedDataBaseを実装しています。

CheckpointedData.h70 行で定義されています。

00071         {
00072             // Assign memory for copying.
00073             BackupEntry entry;
00074             entry.data = Construct();
00075             entry.valid = false;
00076 
00077             // Add an allocated entry to the list.
00078             m_list.push_back( entry );
00079             BackupIterator i = m_list.end();
00080             --i;
00081             
00082             // Register the iterator of the entry to a checkpoint.
00083             checkpoint->SetIterator( GetHandle(), i );
00084         }

template<typename DataType>
virtual void Onikiri::CheckpointedData< DataType >::Backup ( Checkpoint checkpoint  )  [inline, virtual]

Onikiri::CheckpointedDataBaseを実装しています。

CheckpointedData.h87 行で定義されています。

00088         {
00089             BackupIterator entry = GetIterator( checkpoint );
00090             entry->valid = true;
00091             *GetData( entry ) = GetCurrent();
00092         }

template<typename DataType>
virtual void Onikiri::CheckpointedData< DataType >::Erase ( Checkpoint checkpoint  )  [inline, virtual]

Onikiri::CheckpointedDataBaseを実装しています。

CheckpointedData.h108 行で定義されています。

00109         {
00110             BackupIterator i;
00111             if( GetIterator( checkpoint, &i ) ){
00112                 DataType* ptr = GetData(i);
00113                 if( ptr ){
00114                     Destroy( ptr );
00115                 }
00116                 m_list.erase( i );
00117             }
00118         }

template<typename DataType>
const DataType& Onikiri::CheckpointedData< DataType >::GetCurrent (  )  const [inline]

CheckpointedData.h122 行で定義されています。

00122 { return m_current;     }

template<typename DataType>
DataType& Onikiri::CheckpointedData< DataType >::GetCurrent (  )  [inline]

CheckpointedData.h121 行で定義されています。

参照元 Onikiri::CheckpointedData< uint64_t >::Backup()Onikiri::CheckpointedData< uint64_t >::operator *()Onikiri::CheckpointedData< uint64_t >::operator->()Onikiri::CheckpointedData< uint64_t >::Recover().

00121 { return m_current;     }

Here is the caller graph for this function:

template<typename DataType>
virtual void Onikiri::CheckpointedData< DataType >::Initialize ( CheckpointMaster master,
CheckpointMaster::Slot  slot 
) [inline, virtual]

CheckpointedData.h62 行で定義されています。

参照元 Onikiri::RAS::Initialize().

00063         {
00064             m_master = master;
00065             CheckpointedDataHandle handle = master->Register( this, slot );
00066             SetHandle( handle );
00067         }

Here is the caller graph for this function:

template<typename DataType>
const DataType& Onikiri::CheckpointedData< DataType >::operator * (  )  const [inline]

CheckpointedData.h124 行で定義されています。

00124 { return GetCurrent();  }

template<typename DataType>
DataType& Onikiri::CheckpointedData< DataType >::operator * (  )  [inline]

CheckpointedData.h123 行で定義されています。

00123 { return GetCurrent();  }

template<typename DataType>
const DataType* Onikiri::CheckpointedData< DataType >::operator-> (  )  const [inline]

CheckpointedData.h126 行で定義されています。

00126 { return &GetCurrent(); }

template<typename DataType>
DataType* Onikiri::CheckpointedData< DataType >::operator-> (  )  [inline]

CheckpointedData.h125 行で定義されています。

00125 { return &GetCurrent(); }

template<typename DataType>
virtual void Onikiri::CheckpointedData< DataType >::Recover ( Checkpoint checkpoint  )  [inline, virtual]

Onikiri::CheckpointedDataBaseを実装しています。

CheckpointedData.h95 行で定義されています。

00096         {
00097             BackupIterator entry = GetIterator( checkpoint );
00098             if( entry->valid ){
00099                 // When an entry is invalid, a check point is already allocated but copying 
00100                 // is not done yet. This occurs when an op between fetch and renaming stages
00101                 // is recovered. The op in the stages 'Backup's resources in fetch stages (ex. PC),
00102                 // but resources in renaming stages (ex. RMT) are not backed up yet.
00103                 GetCurrent() = *GetData( entry );
00104             }
00105         }


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 14:54:03 2013に生成されました。  doxygen 1.4.7