クラス テンプレート Onikiri::fixed_sized_buffer< T, SIZE, Tag >

#include <fixed_size_buffer.h>

Onikiri::fixed_sized_buffer< T, SIZE, Tag >に対する継承グラフ

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

Public 型

typedef boost::array< T, SIZE > base_type
typedef base_type::const_iterator const_iterator
typedef base_type::const_reference const_reference
typedef base_type::iterator iterator
typedef base_type::reference reference
typedef base_type::size_type size_type

Public メソッド

const_reference at (size_type i) const
reference at (size_type i)
const_iterator begin () const
iterator begin ()
void clear ()
T * data ()
const T * data () const
const_iterator end () const
iterator end ()
iterator erase (const_iterator where)
 fixed_sized_buffer (const fixed_sized_buffer &rhs)
 fixed_sized_buffer ()
fixed_sized_bufferoperator= (const fixed_sized_buffer &rhs)
const_reference operator[] (size_type i) const
reference operator[] (size_type i)
void pop_front ()
void push_back (const T &value)
void resize (size_t size, const T &value=T())
size_type size () const

Protected メソッド

NOINLINE void buffer_overflow ()

Protected 変数

iterator m_end

説明

template<typename T, size_t SIZE, typename Tag = int>
class Onikiri::fixed_sized_buffer< T, SIZE, Tag >

fixed_size_buffer.h38 行で定義されています。


型定義

template<typename T, size_t SIZE, typename Tag = int>
typedef boost::array< T, SIZE > Onikiri::fixed_sized_buffer< T, SIZE, Tag >::base_type

fixed_size_buffer.h41 行で定義されています。

template<typename T, size_t SIZE, typename Tag = int>
typedef base_type::const_iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::const_iterator

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

template<typename T, size_t SIZE, typename Tag = int>
typedef base_type::const_reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::const_reference

fixed_size_buffer.h46 行で定義されています。

template<typename T, size_t SIZE, typename Tag = int>
typedef base_type::iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::iterator

fixed_size_buffer.h43 行で定義されています。

template<typename T, size_t SIZE, typename Tag = int>
typedef base_type::reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::reference

fixed_size_buffer.h45 行で定義されています。

template<typename T, size_t SIZE, typename Tag = int>
typedef base_type::size_type Onikiri::fixed_sized_buffer< T, SIZE, Tag >::size_type

fixed_size_buffer.h47 行で定義されています。


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

template<typename T, size_t SIZE, typename Tag = int>
Onikiri::fixed_sized_buffer< T, SIZE, Tag >::fixed_sized_buffer (  )  [inline]

fixed_size_buffer.h49 行で定義されています。

00049                              : 
00050             m_end( base_type::begin() + 0 )
00051         {
00052 
00053         }

template<typename T, size_t SIZE, typename Tag = int>
Onikiri::fixed_sized_buffer< T, SIZE, Tag >::fixed_sized_buffer ( const fixed_sized_buffer< T, SIZE, Tag > &  rhs  )  [inline]

fixed_size_buffer.h55 行で定義されています。

00056         {
00057             std::copy( rhs.begin(), rhs.end(), begin() );
00058             m_end = begin() + rhs.size();
00059         }


関数

template<typename T, size_t SIZE, typename Tag = int>
const_reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::at ( size_type  i  )  const [inline]

fixed_size_buffer.h74 行で定義されています。

00075         {
00076             return base_type::at( i );
00077         }

template<typename T, size_t SIZE, typename Tag = int>
reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::at ( size_type  i  )  [inline]

fixed_size_buffer.h69 行で定義されています。

参照元 Onikiri::Renamer::CanRename().

00070         { 
00071             return base_type::at( i );
00072         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
const_iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::begin (  )  const [inline]

fixed_size_buffer.h130 行で定義されています。

00131         {
00132             return base_type::begin();
00133         }

template<typename T, size_t SIZE, typename Tag = int>
iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::begin (  )  [inline]

fixed_size_buffer.h120 行で定義されています。

参照元 Onikiri::PipelineLatch::begin()Onikiri::Renamer::CanRename()Onikiri::ExecUnitReserver::CanReserve()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::clear()Onikiri::PipelineLatch::DumpStallBegin()Onikiri::PipelineLatch::DumpStallEnd()Onikiri::InorderIssueSelector::EvaluateSelect()Onikiri::AgeIssueSelector::EvaluateSelect()Onikiri::PriorityEventList::ExtractEvent()Onikiri::PipelineLatch::FindAndEraseFromLatch()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::fixed_sized_buffer()Onikiri::Renamer::ForEachOp()Onikiri::Renamer::ForEachOp1()Onikiri::DependencySet::IsIncluded()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::operator=()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::pop_front()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::resize()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::size()Onikiri::ExecUnitReserver::Update()Onikiri::PipelineLatch::UpdateLatch()Onikiri::PriorityEventList::~PriorityEventList().

00121         {
00122             return base_type::begin();
00123         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
NOINLINE void Onikiri::fixed_sized_buffer< T, SIZE, Tag >::buffer_overflow (  )  [inline, protected]

fixed_size_buffer.h171 行で定義されています。

参照元 Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::push_back()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::resize().

00172         {
00173             THROW_RUNTIME_ERROR( 
00174                 "A buffer is resized in excess of a max buffer size. "
00175                 "The max buffer size (%d) is too small. "
00176                 "Type tag: %s",
00177                 (int)SIZE,
00178                 typeid( Tag ).name()
00179             );
00180         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
void Onikiri::fixed_sized_buffer< T, SIZE, Tag >::clear (  )  [inline]

fixed_size_buffer.h140 行で定義されています。

参照元 Onikiri::ExecUnitReserver::Begin()Onikiri::Fetcher::Fetch()Onikiri::PriorityEventList::~PriorityEventList().

00141         {
00142             m_end = begin();
00143         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
T* Onikiri::fixed_sized_buffer< T, SIZE, Tag >::data (  )  [inline]

fixed_size_buffer.h94 行で定義されています。

00095         {
00096             return base_type::data(); 
00097         }

template<typename T, size_t SIZE, typename Tag = int>
const T* Onikiri::fixed_sized_buffer< T, SIZE, Tag >::data (  )  const [inline]

fixed_size_buffer.h89 行で定義されています。

参照元 Onikiri::Renamer::CanRename().

00090         {
00091             return base_type::data(); 
00092         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
const_iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::end (  )  const [inline]

fixed_size_buffer.h135 行で定義されています。

00136         {
00137             return m_end;
00138         }

template<typename T, size_t SIZE, typename Tag = int>
iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::end (  )  [inline]

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

参照元 Onikiri::Renamer::CanRename()Onikiri::ExecUnitReserver::CanReserve()Onikiri::PipelineLatch::DumpStallBegin()Onikiri::PipelineLatch::DumpStallEnd()Onikiri::PipelineLatch::end()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::erase()Onikiri::InorderIssueSelector::EvaluateSelect()Onikiri::AgeIssueSelector::EvaluateSelect()Onikiri::PriorityEventList::ExtractEvent()Onikiri::PipelineLatch::FindAndEraseFromLatch()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::fixed_sized_buffer()Onikiri::Renamer::ForEachOp()Onikiri::Renamer::ForEachOp1()Onikiri::DependencySet::IsIncluded()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::operator=()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::resize()Onikiri::ExecUnitReserver::Update()Onikiri::PipelineLatch::UpdateLatch()Onikiri::PriorityEventList::~PriorityEventList().

00126         {
00127             return m_end;
00128         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::erase ( const_iterator  where  )  [inline]

fixed_size_buffer.h154 行で定義されています。

参照元 Onikiri::PipelineLatch::erase()Onikiri::PipelineLatch::FindAndEraseFromLatch()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::pop_front()Onikiri::PipelineLatch::UpdateLatch().

00155         {
00156             const_iterator s = where + 1;
00157             iterator d = iterator( where );
00158             while( s != end() ){
00159                 *d = *s;
00160                 s++;
00161                 d++;
00162             }
00163             //std::move< const_iterator, iterator >( where + 1, end(), iterator( where ) );
00164             m_end--;
00165             return iterator( where );
00166         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
fixed_sized_buffer& Onikiri::fixed_sized_buffer< T, SIZE, Tag >::operator= ( const fixed_sized_buffer< T, SIZE, Tag > &  rhs  )  [inline]

fixed_size_buffer.h61 行で定義されています。

00062         {
00063             std::copy( rhs.begin(), rhs.end(), begin() );
00064             m_end = begin() + rhs.size();
00065             return *this;
00066         }

template<typename T, size_t SIZE, typename Tag = int>
const_reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::operator[] ( size_type  i  )  const [inline]

fixed_size_buffer.h84 行で定義されています。

00085         {     
00086             return (*static_cast<base_type*>(this))[i];
00087         }

template<typename T, size_t SIZE, typename Tag = int>
reference Onikiri::fixed_sized_buffer< T, SIZE, Tag >::operator[] ( size_type  i  )  [inline]

fixed_size_buffer.h79 行で定義されています。

00080         { 
00081             return (*static_cast<base_type*>(this))[i];
00082         }

template<typename T, size_t SIZE, typename Tag = int>
void Onikiri::fixed_sized_buffer< T, SIZE, Tag >::pop_front (  )  [inline]

fixed_size_buffer.h115 行で定義されています。

参照元 Onikiri::PipelineLatch::pop_front().

00116         {
00117             erase( begin() );
00118         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
void Onikiri::fixed_sized_buffer< T, SIZE, Tag >::push_back ( const T &  value  )  [inline]

fixed_size_buffer.h105 行で定義されています。

参照元 Onikiri::Renamer::Evaluate()Onikiri::Dispatcher::Evaluate()Onikiri::PriorityEventList::ExtractEvent()Onikiri::Fetcher::Fetch()Onikiri::PriorityEventList::PriorityEventList()Onikiri::PipelineLatch::Receive()Onikiri::ExecUnitReserver::Reserve()Onikiri::Dispatcher::Update()Onikiri::PipelineLatch::UpdateLatch().

00106         {
00107             if( size() >= base_type::size() ){
00108                 buffer_overflow();
00109             }
00110 
00111             *m_end = value;
00112             m_end++;
00113         }

Here is the caller graph for this function:

template<typename T, size_t SIZE, typename Tag = int>
void Onikiri::fixed_sized_buffer< T, SIZE, Tag >::resize ( size_t  size,
const T &  value = T() 
) [inline]

fixed_size_buffer.h145 行で定義されています。

00146         {
00147             if( size >= base_type::size() ){
00148                 buffer_overflow();
00149             }
00150             m_end = begin() + size;
00151             std::fill( begin(), end(), value );
00152         }

template<typename T, size_t SIZE, typename Tag = int>
size_type Onikiri::fixed_sized_buffer< T, SIZE, Tag >::size (  )  const [inline]

fixed_size_buffer.h100 行で定義されています。

参照元 Onikiri::Renamer::CanRename()Onikiri::PipelineLatch::End()Onikiri::Renamer::Evaluate()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::fixed_sized_buffer()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::operator=()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::push_back()Onikiri::PipelineLatch::size().

00101         {
00102             return m_end - begin();
00103         }

Here is the caller graph for this function:


変数

template<typename T, size_t SIZE, typename Tag = int>
iterator Onikiri::fixed_sized_buffer< T, SIZE, Tag >::m_end [protected]

fixed_size_buffer.h169 行で定義されています。

参照元 Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::clear()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::end()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::erase()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::fixed_sized_buffer()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::operator=()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::push_back()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::resize()Onikiri::fixed_sized_buffer< Onikiri::Dependency *, MAX_DEPENDENCY_SET_SIZE, DependencySetMaxSize >::size().


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