#include <CheckpointedData.h>
Onikiri::CheckpointedData< DataType >に対する継承グラフ
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 () |
CheckpointedData.h の 44 行で定義されています。
Onikiri::CheckpointedData< DataType >::CheckpointedData | ( | ) | [inline] |
virtual Onikiri::CheckpointedData< DataType >::~CheckpointedData | ( | ) | [inline, virtual] |
CheckpointedData.h の 52 行で定義されています。
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 }
virtual void Onikiri::CheckpointedData< DataType >::Allocate | ( | Checkpoint * | checkpoint | ) | [inline, virtual] |
Onikiri::CheckpointedDataBaseを実装しています。
CheckpointedData.h の 70 行で定義されています。
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 }
virtual void Onikiri::CheckpointedData< DataType >::Backup | ( | Checkpoint * | checkpoint | ) | [inline, virtual] |
Onikiri::CheckpointedDataBaseを実装しています。
CheckpointedData.h の 87 行で定義されています。
00088 { 00089 BackupIterator entry = GetIterator( checkpoint ); 00090 entry->valid = true; 00091 *GetData( entry ) = GetCurrent(); 00092 }
virtual void Onikiri::CheckpointedData< DataType >::Erase | ( | Checkpoint * | checkpoint | ) | [inline, virtual] |
Onikiri::CheckpointedDataBaseを実装しています。
CheckpointedData.h の 108 行で定義されています。
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 }
const DataType& Onikiri::CheckpointedData< DataType >::GetCurrent | ( | ) | const [inline] |
DataType& Onikiri::CheckpointedData< DataType >::GetCurrent | ( | ) | [inline] |
CheckpointedData.h の 121 行で定義されています。
参照元 Onikiri::CheckpointedData< uint64_t >::Backup()・Onikiri::CheckpointedData< uint64_t >::operator *()・Onikiri::CheckpointedData< uint64_t >::operator->()・Onikiri::CheckpointedData< uint64_t >::Recover().
Here is the caller graph for this function:
virtual void Onikiri::CheckpointedData< DataType >::Initialize | ( | CheckpointMaster * | master, | |
CheckpointMaster::Slot | slot | |||
) | [inline, virtual] |
CheckpointedData.h の 62 行で定義されています。
参照元 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:
const DataType& Onikiri::CheckpointedData< DataType >::operator * | ( | ) | const [inline] |
DataType& Onikiri::CheckpointedData< DataType >::operator * | ( | ) | [inline] |
const DataType* Onikiri::CheckpointedData< DataType >::operator-> | ( | ) | const [inline] |
DataType* Onikiri::CheckpointedData< DataType >::operator-> | ( | ) | [inline] |
virtual void Onikiri::CheckpointedData< DataType >::Recover | ( | Checkpoint * | checkpoint | ) | [inline, virtual] |
Onikiri::CheckpointedDataBaseを実装しています。
CheckpointedData.h の 95 行で定義されています。
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 }