File:  [ELWIX - Embedded LightWeight unIX -] / gpl / axl / src / axl_stack.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 8 07:09:12 2011 UTC (13 years, 1 month ago) by misho
Branches: axl, MAIN
CVS tags: HEAD, AXL0_6_7, AXL0_6_1
3th party - XML

    1: /*
    2:  *  LibAxl:  Another XML library
    3:  *  Copyright (C) 2006 Advanced Software Production Line, S.L.
    4:  *
    5:  *  This program is free software; you can redistribute it and/or
    6:  *  modify it under the terms of the GNU Lesser General Public License
    7:  *  as published by the Free Software Foundation; either version 2.1 of
    8:  *  the License, or (at your option) any later version.
    9:  *
   10:  *  This program is distributed in the hope that it will be useful,
   11:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
   12:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
   13:  *  GNU Lesser General Public License for more details.
   14:  *
   15:  *  You should have received a copy of the GNU Lesser General Public
   16:  *  License along with this program; if not, write to the Free
   17:  *  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18:  *  02111-1307 USA
   19:  *  
   20:  *  You may find a copy of the license under this software is released
   21:  *  at COPYING file. This is LGPL software: you are welcome to
   22:  *  develop proprietary applications using this library without any
   23:  *  royalty or fee but returning back any change, improvement or
   24:  *  addition in the form of source code, project image, documentation
   25:  *  patches, etc. 
   26:  *
   27:  *  For commercial support on build XML enabled solutions contact us:
   28:  *          
   29:  *      Postal address:
   30:  *         Advanced Software Production Line, S.L.
   31:  *         Edificio Alius A, Oficina 102,
   32:  *         C/ Antonio Suarez Nº 10,
   33:  *         Alcalá de Henares 28802 Madrid
   34:  *         Spain
   35:  *
   36:  *      Email address:
   37:  *         info@aspl.es - http://www.aspl.es/xml
   38:  */
   39: #ifndef __AXL_STACK_H__
   40: #define __AXL_STACK_H__
   41: 
   42: #include <axl_decl.h>
   43: 
   44: 
   45: 
   46: BEGIN_C_DECLS
   47: 
   48: /** 
   49:  * \addtogroup axl_stack_module
   50:  * @{
   51:  */
   52: 
   53: axlStack * axl_stack_new (axlDestroyFunc destroy_data);
   54: 
   55: void       axl_stack_push (axlStack * stack, axlPointer data);
   56: 
   57: axlPointer axl_stack_pop  (axlStack * stack);
   58: 
   59: axlPointer axl_stack_peek (axlStack * stack);
   60: 
   61: axl_bool   axl_stack_foreach (axlStack         * stack, 
   62: 			      axlStackForeach2   func,
   63: 			      axlPointer         user_data, 
   64: 			      axlPointer         user_data2);
   65: 
   66: axl_bool   axl_stack_foreach3 (axlStack         * stack, 
   67: 			       axlStackForeach3   func,
   68: 			       axlPointer         user_data,
   69: 			       axlPointer         user_data2,
   70: 			       axlPointer         user_data3);
   71: 
   72: int        axl_stack_size (axlStack * stack);
   73: 
   74: axl_bool   axl_stack_is_empty (axlStack * stack);
   75: 
   76: void       axl_stack_free (axlStack * stack);
   77: 
   78: axlBinaryStack * axl_binary_stack_new (void);
   79: 
   80: void             axl_binary_stack_push          (axlBinaryStack * bstack, axl_bool status);
   81: 
   82: void             axl_binary_stack_push_the_same (axlBinaryStack * bstack);
   83: 
   84: axl_bool         axl_binary_stack_pop  (axlBinaryStack * bstack);
   85: 
   86: axl_bool         axl_binary_stack_peek (axlBinaryStack * bstack);
   87: 
   88: axl_bool         axl_binary_stack_is_empty (axlBinaryStack * bstack);
   89: 
   90: int              axl_binary_stack_size     (axlBinaryStack * bstack);
   91: 
   92: void             axl_binary_stack_free (axlBinaryStack * bstack);
   93: 
   94: /* @} */
   95: 
   96: END_C_DECLS
   97: 
   98: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>