campo-sirio/omnia/stack.h

52 lines
1.3 KiB
C
Raw Normal View History

#ifndef __STACK_H
#define __STACK_H
#ifndef __ARRAY_H
#include "array.h"
#endif
// @doc EXTERNAL
// @class TStack | Classe per la gestione dello stack a basso livello
//
// @base public | TObject
class TStack : public TObject
// @author:(INTERNAL) Alex
// @access:(INTERNAL) Private Member
{
protected:
// @cmember:(INTERNAL) Dati dello stack
TArray _data;
// @cmember:(INTERNAL) Puntatore alla cima dello stack
int _sp;
// @access Public Member
public:
// @cmember Ritorna il puntatore allo stack
int count() const
{ return _sp; }
// @cmember Aggiunge un oggetto sullo stack
void push(const TObject& o);
// @cmember Aggiunge un oggetto sullo stack
void push(TObject* o);
// @cmember Ritorna il primo oggetto sulla cima dello stack
TObject& pop();
// @cmember Ritorna l'oggetto ad una data profondita' nello stack
TObject& peek(int depth = 0) const;
// @cmember Distrugge l'intero stack
void destroy();
// @cmember Distrugge l'oggetto alla base dello stack
bool destroy_base();
// @cmember Costruttore. Chiama il costruttore di <c TArray>
TStack(int size = 16);
// @cmember Costruttore. Chiama il costruttore di <c TArray>
TStack(const TStack& stack);
// @cmember Distruttore. Chiama il distruttore di <c TArray>
virtual ~TStack() { }
};
#endif