1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
/**
* perl-libxml-mm.h
* $Id: perl-libxml-mm.h,v 1.3 2002/08/03 20:09:35 matt Exp $
*
* Basic concept:
* perl varies in the implementation of UTF8 handling. this header (together
* with the c source) implements a few functions, that can be used from within
* the core module inorder to avoid cascades of c pragmas
*/
#ifndef __PERL_LIBXML_MM_H__
#define __PERL_LIBXML_MM_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include <libxml/parser.h>
#ifdef __cplusplus
}
#endif
/*
* NAME xs_warn
* TYPE MACRO
*
* this makro is for XML::LibXML development and debugging.
*
* SYNOPSIS
* xs_warn("my warning")
*
* this makro takes only a single string(!) and passes it to perls
* warn function if the XS_WARNRINGS pragma is used at compile time
* otherwise any xs_warn call is ignored.
*
* pay attention, that xs_warn does not implement a complete wrapper
* for warn!!
*/
#ifdef XS_WARNINGS
#define xs_warn(string) warn(string)
#else
#define xs_warn(string)
#endif
struct _ProxyNode;
typedef struct _ProxyNode ProxyNode;
typedef ProxyNode* ProxyNodePtr;
/* this my go only into the header used by the xs */
#define SvPROXYNODE(x) ((ProxyNodePtr)SvIV(SvRV(x)))
#define x_PmmREFCNT(node) node->count
#define x_PmmREFCNT_inc(node) node->count++
#define x_PmmNODE(xnode) xnode->node
#define x_PmmOWNER(node) node->owner
#define x_PmmOWNERPO(node) ((node && x_PmmOWNER(node)) ? (ProxyNodePtr)x_PmmOWNER(node)->_private : node)
ProxyNodePtr
x_PmmNewNode(xmlNodePtr node);
ProxyNodePtr
x_PmmNewFragment(xmlDocPtr document);
int
x_PmmREFCNT_dec( ProxyNodePtr node );
SV*
x_PmmNodeToSv( xmlNodePtr node, ProxyNodePtr owner );
xmlNodePtr
x_PmmSvNode( SV * perlnode );
/**
* NAME domNodeTypeName
* TYPE function
*
* returns the perl class name for the given node
*
* SYNOPSIS
* CLASS = domNodeTypeName( node );
*/
const char*
x_PmmNodeTypeName( xmlNodePtr elem );
#endif
|