#include <OpList.h>
Onikiri::OpListに対する継承グラフ
Public 型 | |
typedef pool_list< OpIterator >::const_iterator | const_iterator |
typedef pool_list< OpIterator >::iterator | iterator |
typedef pool_list< OpIterator > | list_type |
Public メソッド | |
const OpIterator & | back () const |
OpIterator & | back () |
const_iterator | begin () const |
iterator | begin () |
void | clear () |
size_t | count (const OpIterator &op) const |
bool | empty () const |
const_iterator | end () const |
iterator | end () |
iterator | erase (iterator pos) |
iterator | erase (const OpIterator &opIterator) |
iterator | find (const OpIterator &opIterator) |
bool | find_and_erase (OpIterator op) |
const OpIterator & | front () const |
OpIterator & | front () |
iterator | get_iterator (const OpIterator &opIterator) const |
iterator | get_original_iterator (const OpIterator &opIterator) const |
iterator | insert (iterator pos, const OpIterator &opIterator) |
void | move (OpList *from) |
iterator | operator[] (const OpIterator &opIterator) const |
OpList (const OpArray &opArray) | |
OpList () | |
void | pop_back () |
void | pop_front () |
void | push_back (const OpIterator &opIterator) |
void | push_front (const OpIterator &opIterator) |
void | push_inorder (OpIterator op) |
void | resize (int capacity) |
void | resize (const OpArray &opArray) |
size_t | size () const |
template<class SortCmpT> | |
void | sort (SortCmpT cmp) |
virtual | ~OpList () |
Protected 変数 | |
boost::dynamic_bitset | alive_table |
std::vector< iterator > | iterator_table |
typedef pool_list<OpIterator>::iterator Onikiri::OpList::iterator |
OpList::OpList | ( | ) |
OpList::OpList | ( | const OpArray & | opArray | ) |
OpList::~OpList | ( | ) | [virtual] |
const OpIterator& Onikiri::OpList::back | ( | ) | const [inline] |
OpIterator& Onikiri::OpList::back | ( | ) | [inline] |
参照元 Onikiri::InorderList::GetBackOp()・Onikiri::InorderList::GetNextIndexOp().
Here is the caller graph for this function:
const_iterator Onikiri::OpList::begin | ( | ) | const [inline] |
iterator Onikiri::OpList::begin | ( | ) | [inline] |
Onikiri::OpBufferで再定義されています。
参照元 Onikiri::OpBuffer::begin()・Onikiri::InorderIssueSelector::EvaluateSelect()・Onikiri::AgeIssueSelector::EvaluateSelect()・Onikiri::MemOrderManager::GetConsumerLoad()・Onikiri::MemOrderManager::GetProducerStore()・move()・pop_front()・push_front()・push_inorder()・Onikiri::MemOrderManager::Read().
Here is the caller graph for this function:
void OpList::clear | ( | ) |
OpList.cpp の 107 行で定義されています。
参照先 alive_table.
00108 { 00109 list_type::clear(); 00110 alive_table.reset(); 00111 }
size_t OpList::count | ( | const OpIterator & | op | ) | const |
Onikiri::OpBufferで再定義されています。
OpList.cpp の 122 行で定義されています。
参照先 alive_table・Onikiri::OpIterator::GetID().
参照元 Onikiri::OpBuffer::count()・Onikiri::MemOrderManager::DetectAccessOrderViolation()・Onikiri::MemOrderManager::Finished()・Onikiri::MemOrderManager::GetConsumerLoad()・Onikiri::MemOrderManager::GetProducerStore()・Onikiri::Scheduler::IsInScheduler()・Onikiri::Scheduler::Reschedule().
00123 { 00124 if( alive_table[ op.GetID() ] == true ) { 00125 return 1; 00126 }else { 00127 return 0; 00128 } 00129 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
bool Onikiri::OpList::empty | ( | ) | const [inline] |
参照元 Onikiri::InorderList::GetBackOp()・Onikiri::InorderList::GetCommittedFrontOp()・Onikiri::InorderList::GetFrontOp()・Onikiri::InorderList::IsEmpty()・push_inorder()・Onikiri::InorderList::Retire().
Here is the caller graph for this function:
const_iterator Onikiri::OpList::end | ( | ) | const [inline] |
iterator Onikiri::OpList::end | ( | ) | [inline] |
Onikiri::OpBufferで再定義されています。
参照元 Onikiri::OpBuffer::end()・erase()・Onikiri::InorderIssueSelector::EvaluateSelect()・Onikiri::AgeIssueSelector::EvaluateSelect()・find_and_erase()・Onikiri::MemOrderManager::GetConsumerLoad()・Onikiri::MemOrderManager::GetProducerStore()・move()・pop_back()・push_back()・push_inorder()・Onikiri::MemOrderManager::Read().
Here is the caller graph for this function:
OpList::iterator OpList::erase | ( | iterator | pos | ) |
OpList.cpp の 95 行で定義されています。
参照先 alive_table・end()・iterator_table.
00096 { 00097 // x handle insert A 00098 // erase m_iteratorTable Yvf 00099 OpArray::ID id = pos->GetID(); 00100 00101 alive_table[ id ] = false; 00102 iterator_table[ id ] = end(); 00103 00104 return list_type::erase( pos ); 00105 }
関数の呼び出しグラフ:
OpList::iterator OpList::erase | ( | const OpIterator & | opIterator | ) |
OpList.cpp の 90 行で定義されています。
参照先 get_iterator().
参照元 Onikiri::MemOrderManager::Delete()・find_and_erase()・move()・pop_back()・pop_front()・Onikiri::Scheduler::Reschedule().
00091 { 00092 return erase( get_iterator(opIterator) ); 00093 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
OpList::iterator OpList::find | ( | const OpIterator & | opIterator | ) |
OpList.cpp の 113 行で定義されています。
参照先 alive_table・get_iterator()・Onikiri::OpIterator::GetID().
参照元 find_and_erase().
00114 { 00115 if( alive_table[ opIterator.GetID() ] == true ) { 00116 return get_iterator(opIterator); 00117 }else { 00118 return list_type::end(); 00119 } 00120 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
bool OpList::find_and_erase | ( | OpIterator | op | ) |
Onikiri::OpBufferで再定義されています。
OpList.cpp の 131 行で定義されています。
参照元 Onikiri::Dispatcher::Delete()・Onikiri::Dispatcher::ExitLowerPipeline()・Onikiri::OpBuffer::find_and_erase().
00132 { 00133 iterator i = find(op); 00134 bool erased = i != end(); 00135 if(erased){ 00136 erase(i); 00137 } 00138 return erased; 00139 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
const OpIterator& Onikiri::OpList::front | ( | ) | const [inline] |
OpIterator& Onikiri::OpList::front | ( | ) | [inline] |
参照元 Onikiri::InorderList::Commit()・Onikiri::InorderList::GetCommittedFrontOp()・Onikiri::InorderList::GetFrontOp()・Onikiri::InorderList::Retire().
Here is the caller graph for this function:
OpList::iterator OpList::get_iterator | ( | const OpIterator & | opIterator | ) | const |
OpList.cpp の 62 行で定義されています。
参照先 Onikiri::OpIterator::GetID()・iterator_table.
参照元 erase()・find()・Onikiri::InorderList::GetNextIndexOp()・Onikiri::InorderList::GetPrevIndexOp()・operator[]().
00063 { 00064 return iterator_table[ opIterator.GetID() ]; 00065 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
iterator Onikiri::OpList::get_original_iterator | ( | const OpIterator & | opIterator | ) | const |
OpList::iterator OpList::insert | ( | iterator | pos, | |
const OpIterator & | opIterator | |||
) |
OpList.cpp の 72 行で定義されています。
参照先 alive_table・ASSERT・Onikiri::OpIterator::GetID()・iterator_table.
参照元 Onikiri::OpBuffer::insert()・push_back()・push_front()・push_inorder().
00073 { 00074 OpArray::ID id = opIterator.GetID(); 00075 00076 ASSERT( 00077 alive_table[ id ] == false, 00078 "opIterator inserted twice." 00079 ); 00080 00081 iterator iter = 00082 list_type::insert( pos, opIterator ); 00083 00084 iterator_table[ id ] = iter; 00085 alive_table[ id ] = true; 00086 00087 return iter; 00088 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
void Onikiri::OpList::move | ( | OpList * | from | ) | [inline] |
参照先 begin()・end()・erase()・push_inorder().
00145 { 00146 for( iterator i = from->begin(); i != from->end(); ){ 00147 push_inorder( *i ); 00148 i = from->erase(i); 00149 } 00150 }
関数の呼び出しグラフ:
OpList::iterator OpList::operator[] | ( | const OpIterator & | opIterator | ) | const |
OpList.cpp の 67 行で定義されています。
参照先 get_iterator().
00068 { 00069 return get_iterator( opIterator ); 00070 }
関数の呼び出しグラフ:
void Onikiri::OpList::pop_back | ( | ) | [inline] |
void Onikiri::OpList::pop_front | ( | ) | [inline] |
参照元 Onikiri::InorderList::Commit()・Onikiri::InorderList::Retire().
関数の呼び出しグラフ:
Here is the caller graph for this function:
void Onikiri::OpList::push_back | ( | const OpIterator & | opIterator | ) | [inline] |
Onikiri::OpBufferで再定義されています。
参照元 Onikiri::MemOrderManager::Allocate()・Onikiri::InorderList::Commit()・Onikiri::Dispatcher::Dispatch()・Onikiri::OpBuffer::push_back()・push_inorder()・Onikiri::InorderList::PushBack()・Onikiri::Scheduler::Reschedule().
関数の呼び出しグラフ:
Here is the caller graph for this function:
void Onikiri::OpList::push_front | ( | const OpIterator & | opIterator | ) | [inline] |
Onikiri::OpBufferで再定義されています。
参照元 Onikiri::OpBuffer::push_front()・push_inorder().
関数の呼び出しグラフ:
Here is the caller graph for this function:
void OpList::push_inorder | ( | OpIterator | op | ) |
Onikiri::OpBufferで再定義されています。
OpList.cpp の 141 行で定義されています。
参照先 begin()・empty()・end()・insert()・push_back()・push_front().
参照元 move()・Onikiri::OpBuffer::push_inorder()・Onikiri::Scheduler::Reschedule().
00142 { 00143 // push_backI 00144 if(empty()) { 00145 push_back(op); 00146 return; 00147 } 00148 00149 // opSerialIDOpIterator 00150 iterator iter = end(); 00151 u64 id = op->GetGlobalSerialID(); 00152 do { 00153 --iter; 00154 if( (*iter)->GetGlobalSerialID() < id ) { 00155 // OpIteratorop} 00156 // insert wvfO}1CNg 00157 ++iter; 00158 insert(iter, op); 00159 return; 00160 } 00161 } while( iter != begin() ); 00162 00163 // B 00164 push_front(op); 00165 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
void OpList::resize | ( | int | capacity | ) |
Onikiri::OpBufferで再定義されています。
OpList.cpp の 52 行で定義されています。
参照先 alive_table・iterator_table.
00053 { 00054 alive_table.resize( capacity, false ); 00055 iterator_table.resize( capacity ); 00056 }
void OpList::resize | ( | const OpArray & | opArray | ) |
Onikiri::OpBufferで再定義されています。
OpList.cpp の 47 行で定義されています。
参照先 Onikiri::OpArray::GetCapacity().
参照元 Onikiri::Scheduler::Initialize()・Onikiri::MemOrderManager::Initialize()・Onikiri::InorderList::Initialize()・OpList()・Onikiri::OpBuffer::resize().
00048 { 00049 resize( opArray.GetCapacity() ); 00050 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
size_t Onikiri::OpList::size | ( | ) | const [inline] |
Onikiri::OpBufferで再定義されています。
参照元 Onikiri::MemOrderManager::CanAllocate()・Onikiri::InorderList::CanAllocate()・Onikiri::InorderIssueSelector::EvaluateSelect()・Onikiri::OpBuffer::size().
Here is the caller graph for this function:
void Onikiri::OpList::sort | ( | SortCmpT | cmp | ) | [inline] |
boost::dynamic_bitset Onikiri::OpList::alive_table [protected] |
std::vector< iterator > Onikiri::OpList::iterator_table [protected] |