version 1.58, 2004/10/17 20:39:17
|
version 1.59, 2005/01/10 19:14:13
|
|
|
{ | { |
} | } |
| |
QueueIdStack(const QueueIdStack& x) : _size(x._size) |
QueueIdStack(const QueueIdStack& x); |
{ |
|
memcpy(_items, x._items, sizeof(_items)); |
|
} |
|
| |
PEGASUS_EXPLICIT QueueIdStack(Uint32 x) : _size(0) |
PEGASUS_EXPLICIT QueueIdStack(Uint32 x); |
{ |
|
push(x); |
|
} |
|
| |
PEGASUS_EXPLICIT QueueIdStack(Uint32 x1, Uint32 x2) : _size(0) |
PEGASUS_EXPLICIT QueueIdStack(Uint32 x1, Uint32 x2); |
{ |
|
push(x1); |
|
push(x2); |
|
} |
|
| |
~QueueIdStack() | ~QueueIdStack() |
{ | { |
} | } |
| |
QueueIdStack& operator=(const QueueIdStack& x) |
QueueIdStack& operator=(const QueueIdStack& x); |
{ |
|
if (this != &x) |
|
{ |
|
memcpy(_items, x._items, sizeof(_items)); |
|
_size = x._size; |
|
} |
|
return *this; |
|
} |
|
| |
Uint32 size() const | Uint32 size() const |
{ | { |
|
|
| |
void push(Uint32 x) | void push(Uint32 x) |
{ | { |
|
#ifdef PEGASUS_DEBUG |
if (_size == MAX_SIZE) | if (_size == MAX_SIZE) |
throw StackOverflow(); | throw StackOverflow(); |
|
#endif |
_items[_size++] = x; | _items[_size++] = x; |
} | } |
| |
Uint32& top() | Uint32& top() |
{ | { |
|
#ifdef PEGASUS_DEBUG |
if (_size == 0) | if (_size == 0) |
throw StackUnderflow(); | throw StackUnderflow(); |
|
#endif |
return _items[_size-1]; | return _items[_size-1]; |
} | } |
| |
|
|
| |
void pop() | void pop() |
{ | { |
|
#ifdef PEGASUS_DEBUG |
if (_size == 0) | if (_size == 0) |
throw StackUnderflow(); | throw StackUnderflow(); |
|
#endif |
_size--; | _size--; |
} | } |
| |
/** Make a copy of this stack and then pop the top element. */ | /** Make a copy of this stack and then pop the top element. */ |
QueueIdStack copyAndPop() const |
QueueIdStack copyAndPop() const; |
{ |
|
return QueueIdStack(*this, 0); |
|
} |
|
| |
private: | private: |
| |
// Copy the given stack but then pop the top element: | // Copy the given stack but then pop the top element: |
QueueIdStack(const QueueIdStack& x, int) : _size(x._size) |
QueueIdStack(const QueueIdStack& x, int); |
{ |
|
memcpy(_items, x._items, sizeof(_items)); |
|
pop(); |
|
} |
|
| |
enum { MAX_SIZE = 5 }; | enum { MAX_SIZE = 5 }; |
Uint32 _items[MAX_SIZE]; | Uint32 _items[MAX_SIZE]; |