You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdewebdev/kxsldbg/kxsldbgpart/libxsldbg/callstack.h

276 lines
5.2 KiB

/* *************************************************************************
xslcallpoint.h - public functions for the
the call stack
-------------------
begin : Fri Dec 7 2001
copyright : (C) 2001 by Keith Isdale
email : k_isdale@tpg.com.au
************************************************************************* */
/***************************************************************************
* *
* 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. *
* *
************************************************************************* */
#ifndef XSLCALLSTACK_H
#define XSLCALLSTACK_H
/**
* Provide a call stack support
*
* @short call stack support
*
* @author Keith Isdale <k_isdale@tpg.com.au>
*/
#ifndef BUILD_DOCS
#include "breakpoint.h"
#endif
#ifdef WITH_XSLT_DEBUG
#ifndef WITH_XSLT_DEBUG_BREAKPOINTS
#define WITH_XSLT_DEBUG_BREAKPOINTS
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _callPointInfo callPointInfo;
typedef callPointInfo *callPointInfoPtr;
struct _callPointInfo {
xmlChar *templateName, *templateURI;
xmlChar *modeName, *modeURI;
xmlChar *url;
callPointInfoPtr next;
};
typedef struct _callPoint callPoint;
typedef callPoint *callPointPtr;
struct _callPoint {
callPointInfoPtr info;
long lineNo;
callPointPtr next;
};
#ifdef USE_GNOME_DOCS
/**
* callStackInit:
*
* Returns If callStack has been initialized properly and all
* memory required has been obtained,
* 0 otherwise
*
* Returns 1 if callStack has been initialized properly and all
* memory required has been obtained,
* 0 otherwise
*/
#endif
int
callStackInit(void);
#ifdef USE_GNOME_DOCS
/**
* callStackFree:
*
*
* Free all memory used by callStack
*/
#endif
void
callStackFree(void);
#ifdef USE_GNOME_DOCS
/**
* callStackAdd:
* @templ: The current template being applied
* @source: The source node being processed
*
* Add template "call" to call stack
*
* Returns 1 on success,
* 0 otherwise
*/
#else
#ifdef USE_KDE_DOCS
/**
* Add template "call" to call stack
*
* @param templ The current template being applied
* @param source The source node being processed
*
* @returns 1 on success,
* 0 otherwise
*/
#endif
#endif
int callStackAdd(xsltTemplatePtr templ, xmlNodePtr source);
#ifdef USE_GNOME_DOCS
/**
* callStackDrop:
*
*
* Drop the topmost item off the call stack
*/
#else
#ifdef USE_KDE_DOCS
/**
* Drop the topmost item off the call stack
*/
#endif
#endif
void callStackDrop(void);
#ifdef USE_GNOME_DOCS
/**
* callStackStepup:
* @depth:The frame depth to step up to
* 0 < @depth <= callDepth()
*
* Set the frame depth to step up to
*
* Returns 1 on success,
* 0 otherwise
*/
#else
#ifdef USE_KDE_DOCS
/**
* Set the frame depth to step up to
*
* @returns 1 on success,
* 0 otherwise
*
* @param depth The frame depth to step up to
* 0 < @p depth <= callDepth()
*/
#endif
#endif
int callStackStepup(int depth);
#ifdef USE_GNOME_DOCS
/**
* callStackStepdown:
* @depth: The frame depth to step down to,
* 0 < @depth <= callDepth()
*
* Set the frame depth to step down to
*
* Returns 1 on success,
* 0 otherwise
*/
#else
#ifdef USE_KDE_DOCS
/**
* Set the frame depth to step down to
*
* @returns 1 on success,
* 0 otherwise
*
* @param depth The frame depth to step down to
* 0 < @p depth <= callDepth()
*/
#endif
#endif
int callStackStepdown(int depth);
#ifdef USE_GNOME_DOCS
/**
* callStackGet:
* @depth: 0 < @depth <= callDepth()
*
* Retrieve the call point at specified call depth
* Returns Non-null a if depth is valid,
* NULL otherwise
*/
#else
#ifdef USE_KDE_DOCS
/**
* Retrieve the call point at specified call depth
* @returns Non-null a if depth is valid,
* NULL otherwise
*
* @param depth 0 < @p depth <= callDepth()
*/
#endif
#endif
callPointPtr callStackGet(int depth);
#ifdef USE_GNOME_DOCS
/**
* callStackGetTop:
*
* Get the top item in the call stack
*
* Returns The top of the call stack
*/
#else
#ifdef USE_KDE_DOCS
/**
* Get the top item in the call stack
*
* @returns The top of the call stack
*/
#endif
#endif
callPointPtr callStackGetTop(void);
#ifdef USE_GNOME_DOCS
/**
* callStackGetDepth:
*
* Return the depth of call stack
*
* Returns The depth of call stack
*/
#else
#ifdef USE_KDE_DOCS
/**
* @returns the depth of call stack
*/
#endif
#endif
int callStackGetDepth(void);
#ifdef __cplusplus
}
#endif
#endif