You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
2.0 KiB
HTML

<!menue>
<!h1=dequeue die Pufferklasse>
Der Einsatz dieser Queue ist überall dort gefragt wenn es Universell, schnell zuverlässig und einfach zu Handhaben sein soll.
In der L3lib wird diese Queue eingesetzt wenn an beiden Enden der Queue Daten ein und ausgefügt werden sollen.
Einsatzbereich: Ein, Ausgabe Pufferung, Netzwerkpakete etc.
Wie alle L3Lib Queues ist diese Queue als TemplateKlasse ausgelegt, komplett inline ausgeführt und verwaltet die Zeiger auf die Objekte.
<!h2a=dequeue(),dequeue Konstrukor,dequeue()>
dequeue<T>::dequeue();
Es wird noch kein Speicher allokiert. Der Konstruktor initialisiert lediglich 4 Integer.
<!h2a=~dequeue(),~dequeue Destructor,~dequeue()>
dequeue<T>::dequeue();
Gibt Speicher der queue frei, ohne die Objekte zu löschen.
Um auch die Objekte zu löschen ist folgender Code sinnvoll:
<pre>
while( T = m_fruitobjects.Get() ) delete T;
</pre>
<!h2a=dequeue.func,Memberfunktionen,dequeue.func>
<pre>
void Clear(void); // logically clear the queue
void Init(int max); // set size of queue (hint)
// Init destroys contents and resets all
void PutFront( T *element); // adds element on Front of queue
T *GetFront(void); // zero if queue empty
void PutBack( T *element); // adds element on Back of queue
T *GetBack(void); // zero if queue empty
void Put( T* element ) { PutBack(element);} // Put/Get Support
T* Get(void) { return GetBack();}
int InQueue(void); // returns number of elements queue
bool IsEmpty(void) const; // true if InQueue() returns zero
// iteration
void Set(int index); // sets iteration index
void Reset(void); // resets iteration index (same as Set(0) )
T *Next(void); // returns current element or 0 if no more left, Resets iterator
T *NextNoReset(void); // returns current element or 0 if no more left, Does not reset iterator
T* operator[](int i) const; // returns element at index i
T * SetAt(int i,T* newvalue); // direct access to element, replaces element
virtual void Extend(void); // called from Put*() if stacksize reaches max_elements
</pre>