NEURON
TQueue Class Reference

#include <tqueue.hpp>

Public Member Functions

 TQueue (TQItemPool *, int mkmut=0)
 
virtual ~TQueue ()
 
TQItemleast ()
 
TQItemsecond_least (double t)
 
double least_t ()
 
TQItematomic_dq (double til)
 
TQIteminsert (double t, void *data)
 
TQItemenqueue_bin (double t, void *data)
 
TQItemdequeue_bin ()
 
void shift_bin (double t)
 
double tbin ()
 
TQItemtop ()
 
void release (TQItem *)
 
TQItemfind (double t)
 
void remove (TQItem *)
 
void move (TQItem *, double tnew)
 
void move_least (double tnew)
 
void print ()
 
void check (const char *errmess)
 
void statistics ()
 
void spike_stat (double *)
 
void forall_callback (void(*)(const TQItem *, int))
 
void deleteitem (TQItem *)
 
BinQbinq ()
 
void move (TQItem *i, double tnew)
 Splay tree priority queue implementation. More...
 
void move (TQItem *i, double tnew)
 STL priority queue implementation. More...
 
TQIteminsert (double tt, DiscreteEvent *d)
 Splay tree priority queue implementation. More...
 
TQIteminsert (double tt, DiscreteEvent *d)
 STL priority queue implementation. More...
 
void remove (TQItem *q)
 Splay tree priority queue implementation. More...
 
void remove (TQItem *q)
 STL priority queue implementation. More...
 
TQItematomic_dq (double tt)
 Splay tree priority queue implementation. More...
 
TQItematomic_dq (double tt)
 STL priority queue implementation. More...
 

Public Attributes

int nshift_
 

Private Member Functions

double least_t_nolock ()
 
void move_least_nolock (double tnew)
 
void move_least_nolock (double tnew)
 Splay tree priority queue implementation. More...
 
void move_least_nolock (double tnew)
 STL priority queue implementation. More...
 

Private Attributes

SPTree< TQItem > * sptree_
 
BinQbinq_
 
TQItemleast_
 
TQItemPooltpool_
 
MUTDEC unsigned long ninsert
 
MUTDEC unsigned long nrem
 
MUTDEC unsigned long nleast
 
MUTDEC unsigned long nbal
 
MUTDEC unsigned long ncmplxrem
 
unsigned long ncompare
 
unsigned long nleastsrch
 
unsigned long nfind
 
unsigned long nfindsrch
 
unsigned long nmove
 
unsigned long nfastmove
 

Detailed Description

Definition at line 63 of file tqueue.hpp.

Constructor & Destructor Documentation

◆ TQueue()

TQueue::TQueue ( TQItemPool tp,
int  mkmut = 0 
)

Definition at line 59 of file tqueue.cpp.

◆ ~TQueue()

TQueue::~TQueue ( )
virtual

Definition at line 73 of file tqueue.cpp.

Member Function Documentation

◆ atomic_dq() [1/3]

TQItem * TQueue::atomic_dq ( double  til)

Definition at line 245 of file tqueue.cpp.

◆ atomic_dq() [2/3]

TQItem * TQueue< spltree >::atomic_dq ( double  tt)
inline

Splay tree priority queue implementation.

Definition at line 232 of file tqueue.ipp.

◆ atomic_dq() [3/3]

TQItem * TQueue< pq_que >::atomic_dq ( double  tt)
inline

STL priority queue implementation.

This while loop is to delete events whose times have been moved with the move function, but in fact events were left in the queue since the only function available is pop

Definition at line 247 of file tqueue.ipp.

◆ binq()

BinQ* TQueue::binq ( )
inline

Definition at line 123 of file tqueue.hpp.

◆ check()

void TQueue::check ( const char *  errmess)

Definition at line 115 of file tqueue.cpp.

◆ deleteitem()

void TQueue::deleteitem ( TQItem i)

Definition at line 87 of file tqueue.cpp.

◆ dequeue_bin()

TQItem* TQueue::dequeue_bin ( )
inline

Definition at line 96 of file tqueue.hpp.

◆ enqueue_bin()

TQItem * TQueue::enqueue_bin ( double  t,
void *  data 
)

Definition at line 209 of file tqueue.cpp.

◆ find()

TQItem * TQueue::find ( double  t)

Definition at line 261 of file tqueue.cpp.

◆ forall_callback()

void TQueue::forall_callback ( void(*)(const TQItem *, int)  f)

Definition at line 103 of file tqueue.cpp.

◆ insert() [1/3]

TQItem * TQueue::insert ( double  t,
void *  data 
)

Definition at line 190 of file tqueue.cpp.

◆ insert() [2/3]

TQItem * TQueue< spltree >::insert ( double  tt,
DiscreteEvent d 
)
inline

Splay tree priority queue implementation.

Probably storing both time and event which has the time is redundant, but the event is then returned to the upper level call stack function. If we were to eliminate i->t_ and i->cnt_ fields, we need to make sure we are not braking anything.

Definition at line 152 of file tqueue.ipp.

◆ insert() [3/3]

TQItem * TQueue< pq_que >::insert ( double  tt,
DiscreteEvent d 
)
inline

STL priority queue implementation.

Probably storing both time and event which has the time is redundant, but the event is then returned to the upper level call stack function. If we were to eliminate i->t_ and i->cnt_ fields, we need to make sure we are not braking anything.

Definition at line 175 of file tqueue.ipp.

◆ least()

TQItem* TQueue::least ( )
inline

Definition at line 68 of file tqueue.hpp.

◆ least_t()

double TQueue::least_t ( )
inline

Definition at line 85 of file tqueue.hpp.

◆ least_t_nolock()

double TQueue::least_t_nolock ( )
inlineprivate

Definition at line 128 of file tqueue.hpp.

◆ move() [1/3]

void TQueue::move ( TQItem i,
double  tnew 
)

Definition at line 148 of file tqueue.cpp.

◆ move() [2/3]

void TQueue< spltree >::move ( TQItem i,
double  tnew 
)
inline

Splay tree priority queue implementation.

Definition at line 112 of file tqueue.ipp.

◆ move() [3/3]

void TQueue< pq_que >::move ( TQItem i,
double  tnew 
)
inline

STL priority queue implementation.

Definition at line 129 of file tqueue.ipp.

◆ move_least()

void TQueue::move_least ( double  tnew)

Definition at line 128 of file tqueue.cpp.

◆ move_least_nolock() [1/3]

void TQueue< spltree >::move_least_nolock ( double  tnew)
inlineprivate

Splay tree priority queue implementation.

Definition at line 81 of file tqueue.ipp.

◆ move_least_nolock() [2/3]

void TQueue< pq_que >::move_least_nolock ( double  tnew)
inlineprivate

STL priority queue implementation.

Definition at line 96 of file tqueue.ipp.

◆ move_least_nolock() [3/3]

void TQueue::move_least_nolock ( double  tnew)
private

Definition at line 134 of file tqueue.cpp.

◆ print()

void TQueue::print ( )

Definition at line 91 of file tqueue.cpp.

◆ release()

void TQueue::release ( TQItem q)

Definition at line 220 of file tqueue.cpp.

◆ remove() [1/3]

void TQueue::remove ( TQItem q)

Definition at line 225 of file tqueue.cpp.

◆ remove() [2/3]

void TQueue< spltree >::remove ( TQItem q)
inline

Splay tree priority queue implementation.

Definition at line 198 of file tqueue.ipp.

◆ remove() [3/3]

void TQueue< pq_que >::remove ( TQItem q)
inline

STL priority queue implementation.

Definition at line 215 of file tqueue.ipp.

◆ second_least()

TQItem * TQueue::second_least ( double  t)

Definition at line 119 of file tqueue.cpp.

◆ shift_bin()

void TQueue::shift_bin ( double  t)
inline

Definition at line 99 of file tqueue.hpp.

◆ spike_stat()

void TQueue::spike_stat ( double *  d)

Definition at line 180 of file tqueue.cpp.

◆ statistics()

void TQueue::statistics ( )

Definition at line 166 of file tqueue.cpp.

◆ tbin()

double TQueue::tbin ( )
inline

Definition at line 103 of file tqueue.hpp.

◆ top()

TQItem* TQueue::top ( )
inline

Definition at line 106 of file tqueue.hpp.

Member Data Documentation

◆ binq_

BinQ* TQueue::binq_
private

Definition at line 137 of file tqueue.hpp.

◆ least_

TQItem* TQueue::least_
private

Definition at line 138 of file tqueue.hpp.

◆ nbal

MUTDEC unsigned long TQueue::nbal
private

Definition at line 142 of file tqueue.hpp.

◆ ncmplxrem

MUTDEC unsigned long TQueue::ncmplxrem
private

Definition at line 142 of file tqueue.hpp.

◆ ncompare

unsigned long TQueue::ncompare
private

Definition at line 143 of file tqueue.hpp.

◆ nfastmove

unsigned long TQueue::nfastmove
private

Definition at line 143 of file tqueue.hpp.

◆ nfind

unsigned long TQueue::nfind
private

Definition at line 143 of file tqueue.hpp.

◆ nfindsrch

unsigned long TQueue::nfindsrch
private

Definition at line 143 of file tqueue.hpp.

◆ ninsert

MUTDEC unsigned long TQueue::ninsert
private

Definition at line 142 of file tqueue.hpp.

◆ nleast

MUTDEC unsigned long TQueue::nleast
private

Definition at line 142 of file tqueue.hpp.

◆ nleastsrch

unsigned long TQueue::nleastsrch
private

Definition at line 143 of file tqueue.hpp.

◆ nmove

unsigned long TQueue::nmove
private

Definition at line 143 of file tqueue.hpp.

◆ nrem

MUTDEC unsigned long TQueue::nrem
private

Definition at line 142 of file tqueue.hpp.

◆ nshift_

int TQueue::nshift_

Definition at line 119 of file tqueue.hpp.

◆ sptree_

SPTree<TQItem>* TQueue::sptree_
private

Definition at line 136 of file tqueue.hpp.

◆ tpool_

TQItemPool* TQueue::tpool_
private

Definition at line 139 of file tqueue.hpp.


The documentation for this class was generated from the following files: