bool List<T>::PopBack() { if (Empty()) { std::cerr << "** List error: PopBack() called on empty list\n"; return 0; } Link* oldLink = LinkOut(tail_->prev_); delete oldLink; return 1; } // end PopBack()
bool List<T>::PopFront() { if (Empty()) { std::cerr << "** List error: PopFront() called on empty list\n"; return 0; } Link * oldLink = LinkOut(head_->next_); delete oldLink; return 1; } // end PopFront()
ConstListIterator<T> List<T>::Remove (ConstIterator i) // Remove item at i { // first deal with the impossible cases if (i.curr_ == nullptr || i.curr_ == head_ || i.curr_ == tail_) { std::cerr << "** List error: Remove(i) called with vacuous iterator\n"; return i; } i.curr_ = i.curr_->next_; // advance iterator Link * oldLink = LinkOut(i.curr_->prev_); // unlink element to be removed delete oldLink; // delete return i; // return i at new position } // end Remove(Iterator)
void LinkTx(int size, int link, void *buf) { int e = LinkOut(size,link,buf,Timeout); if( e != 0 ) IOdebug("LinkTx(%d,%d,%x) error %x",size,link,buf,e); }