linux.techass.com
"Tell Bill where to go today!"

Home/What's New
Products
Projects

Technology Associates Homepage


eternaLight!
Alien Technology?





Powered by Linux!
(of course)

SourceForge Logo xdb Documentation
Main Page   Class Hierarchy   Compound List   Header Files   Compound Members  

xstack.h

This is the verbatim text of the xstack.h include file.
/*  $Id: xstack.h,v 1.3 2000/06/20 04:30:18 dbryson Exp $

    Xbase project source code
  
    This file conatains a header file for the xbStack object which
    is used for handling expressions.

    Copyright (C) 1997  Startech, Gary A. Kunkel   
    email - xbase@startech.keller.tx.us
    www   - http://www.startech.keller.tx.us/xbase.html

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    V 1.0   10/10/97   - Initial release of software
    V 1.5   1/2/97     - Added memo field support
    V 1.6a  4/1/98     - Added expression support
    V 1.6b  4/8/98     - Numeric index keys 
*/

#ifndef __XB_STACK_H__
#define __XB_STACK_H__

#include <xdb/xtypes.h>


struct xbStackElement{
   xbStackElement * Previous;
   xbStackElement * Next;
   void * UserPtr;
};


class XBDLLEXPORT xbStack{

 public:
   xbStack( void );
   void    InitStack( void );
   void *  Pop( void );
   xbShort Push( void * );
   xbShort GetStackDepth( void ) { return StackDepth; }
   void    DumpStack( void );

 private:
   xbShort StackDepth;
   xbStackElement * First;
   xbStackElement * Last;
   xbStackElement * Free;          /* points to free stack items */
   xbStackElement * GetStackElement( void );
   void FreeStackElement( xbStackElement * );
};

#endif               // __XB_STACK_H__

Copyright © 2000-2002 Derry Bryson. All Rights Reserved.