#include <sc_list.h>
Public 型 | |
typedef sc_plist_elem * | handle_t |
Public メソッド | |
sc_plist_base () | |
~sc_plist_base () | |
handle_t | push_back (void *d) |
handle_t | push_front (void *d) |
void * | pop_back () |
void * | pop_front () |
handle_t | insert_before (handle_t h, void *d) |
handle_t | insert_after (handle_t h, void *d) |
void * | remove (handle_t h) |
void * | get (handle_t h) const |
void | set (handle_t h, void *d) |
void | mapcar (sc_plist_map_fn f, void *arg) |
void * | front () const |
void * | back () const |
void | erase_all () |
bool | empty () const |
int | size () const |
Private 変数 | |
handle_t | head |
handle_t | tail |
フレンド | |
class | sc_plist_base_iter |
sc_core::sc_plist_base::sc_plist_base | ( | ) |
sc_core::sc_plist_base::~sc_plist_base | ( | ) |
sc_list.cpp の 86 行で定義されています。
00087 { 00088 handle_t p; 00089 for( handle_t h = head; h != 0; h = p ) { 00090 p = h->next; 00091 delete h; 00092 } 00093 }
sc_plist_base::handle_t sc_core::sc_plist_base::push_back | ( | void * | d | ) |
sc_plist_base::handle_t sc_core::sc_plist_base::push_front | ( | void * | d | ) |
void * sc_core::sc_plist_base::pop_back | ( | ) |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 146 行で定義されています。
00147 { 00148 handle_t q = tail; 00149 void* d = q->data; 00150 tail = tail->prev; 00151 delete q; 00152 if (tail != 0) { 00153 tail->next = 0; 00154 } 00155 else { 00156 head = 0; 00157 } 00158 return d; 00159 }
void * sc_core::sc_plist_base::pop_front | ( | ) |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 162 行で定義されています。
00163 { 00164 handle_t q = head; 00165 void* d = q->data; 00166 head = head->next; 00167 delete q; 00168 if (head != 0) { 00169 head->prev = 0; 00170 } 00171 else { 00172 tail = 0; 00173 } 00174 return d; 00175 }
sc_plist_base::handle_t sc_core::sc_plist_base::insert_before | ( | handle_t | h, | |
void * | d | |||
) |
sc_list.cpp の 178 行で定義されています。
00179 { 00180 if (h == 0) { 00181 return push_back(d); 00182 } 00183 else { 00184 handle_t q = new sc_plist_elem( d, h->prev, h ); 00185 h->prev->next = q; 00186 h->prev = q; 00187 return q; 00188 } 00189 }
sc_plist_base::handle_t sc_core::sc_plist_base::insert_after | ( | handle_t | h, | |
void * | d | |||
) |
sc_list.cpp の 192 行で定義されています。
00193 { 00194 if (h == 0) { 00195 return push_front(d); 00196 } 00197 else { 00198 handle_t q = new sc_plist_elem( d, h, h->next ); 00199 h->next->prev = q; 00200 h->next = q; 00201 return q; 00202 } 00203 }
void * sc_core::sc_plist_base::remove | ( | handle_t | h | ) |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 206 行で定義されています。
00207 { 00208 if (h == head) 00209 return pop_front(); 00210 else if (h == tail) 00211 return pop_back(); 00212 else { 00213 void* d = h->data; 00214 h->prev->next = h->next; 00215 h->next->prev = h->prev; 00216 delete h; 00217 return d; 00218 } 00219 }
void * sc_core::sc_plist_base::get | ( | handle_t | h | ) | const |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 222 行で定義されています。
void sc_core::sc_plist_base::set | ( | handle_t | h, | |
void * | d | |||
) |
void sc_core::sc_plist_base::mapcar | ( | sc_plist_map_fn | f, | |
void * | arg | |||
) |
sc_list.cpp の 234 行で定義されています。
00235 { 00236 for (handle_t h = head; h != 0; h = h->next) { 00237 f( h->data, arg ); 00238 } 00239 }
void * sc_core::sc_plist_base::front | ( | ) | const |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 242 行で定義されています。
00243 { 00244 00245 if (head) { 00246 return head->data; 00247 } 00248 else { 00249 SC_REPORT_ERROR( SC_ID_FRONT_ON_EMPTY_LIST_ , 0 ); 00250 // never reached 00251 return 0; 00252 } 00253 }
void * sc_core::sc_plist_base::back | ( | ) | const |
sc_core::sc_plist< T >, と sc_core::sc_plist< sc_core::sc_module * >で再定義されています。
sc_list.cpp の 256 行で定義されています。
00257 { 00258 if (tail) { 00259 return tail->data; 00260 } 00261 else { 00262 SC_REPORT_ERROR( SC_ID_BACK_ON_EMPTY_LIST_, 0 ); 00263 // never reached 00264 return 0; 00265 } 00266 }
void sc_core::sc_plist_base::erase_all | ( | ) |
bool sc_core::sc_plist_base::empty | ( | ) | const [inline] |
int sc_core::sc_plist_base::size | ( | ) | const |
sc_list.cpp の 108 行で定義されています。
00109 { 00110 int n = 0; 00111 for( handle_t h = head; h != 0; h = h->next ) { 00112 n++; 00113 } 00114 return n; 00115 }
friend class sc_plist_base_iter [friend] |
handle_t sc_core::sc_plist_base::head [private] |
handle_t sc_core::sc_plist_base::tail [private] |