You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ja...@apache.org on 2003/11/10 19:18:11 UTC

svn commit: rev 118 - xml/xerces-p/trunk

Author: jasons
Date: Mon Nov 10 10:18:11 2003
New Revision: 118

Modified:
   xml/xerces-p/trunk/typemaps.i
Log:
added overloading code for grammars and CallbackHandlers

Modified: xml/xerces-p/trunk/typemaps.i
==============================================================================
--- xml/xerces-p/trunk/typemaps.i	(original)
+++ xml/xerces-p/trunk/typemaps.i	Mon Nov 10 10:18:11 2003
@@ -180,14 +180,73 @@
 }
 
 //
-// IDOM_Node*
+// Grammar*
+//
+
+%typemap(out) XERCES_CPP_NAMESPACE::Grammar * = SWIGTYPE *DYNAMIC;
+
+DYNAMIC_CAST(SWIGTYPE_p_XERCES_CPP_NAMESPACE__Grammar, Grammar_dynamic_cast);
+
+%{
+static swig_type_info *
+Grammar_dynamic_cast(void **ptr) {
+   Grammar **nptr = (Grammar **) ptr;
+   if (*nptr == NULL) {
+       return NULL;
+   }
+   short int type = (*nptr)->getGrammarType();
+   if (type == Grammar::DTDGrammarType) {
+      return SWIGTYPE_p_XERCES_CPP_NAMESPACE__DTDGrammar;
+   }
+   if (type == Grammar::SchemaGrammarType) {
+      return SWIGTYPE_p_XERCES_CPP_NAMESPACE__SchemaGrammar;
+   }
+   return NULL;
+}
+%}
+
+//
+// PerlCallbackHandler*
+//
+
+%typemap(out) XERCES_CPP_NAMESPACE::PerlCallbackHandler * = SWIGTYPE *DYNAMIC;
+
+DYNAMIC_CAST(SWIGTYPE_p_PerlCallbackHandler, PerlCallbackHandler_dynamic_cast);
+
+%{
+static swig_type_info *
+PerlCallbackHandler_dynamic_cast(void **ptr) {
+   PerlCallbackHandler **nptr = (PerlCallbackHandler **) ptr;
+   if (*nptr == NULL) {
+       return NULL;
+   }
+   short int type = (*nptr)->type();
+   if (type == PERLCALLBACKHANDLER_BASE_TYPE) {
+      die("Can't cast a PerlCallbackHandler base type node\n");
+   }
+   if (type == PERLCALLBACKHANDLER_ERROR_TYPE) {
+      return SWIGTYPE_p_PerlErrorCallbackHandler;
+   }
+   if (type == PERLCALLBACKHANDLER_ENTITY_TYPE) {
+      return SWIGTYPE_p_PerlEntityResolverHandler;
+   }
+   if (type == PERLCALLBACKHANDLER_CONTENT_TYPE) {
+      return SWIGTYPE_p_PerlContentCallbackHandler;
+   }
+   if (type == PERLCALLBACKHANDLER_DOCUMENT_TYPE) {
+      return SWIGTYPE_p_PerlDocumentCallbackHandler;
+   }
+   if (type == PERLCALLBACKHANDLER_NODE_TYPE) {
+      return SWIGTYPE_p_PerlNodeFilterCallbackHandler;
+   }
+   return NULL;
+}
+%}
+
+//
+// DOM_Node*
 //
 
-// %typemap(out) DOMNode* {
-//     swig_type_info *ty = SWIG_TypeDynamicCast($1_descriptor, (void **) &$1);
-//     ST(argvi) = sv_newmortal();
-//     SWIG_MakePtr(ST(argvi++), (void *) result, ty,0);
-// }
 %typemap(out) XERCES_CPP_NAMESPACE::DOMNode * = SWIGTYPE *DYNAMIC;
 
 DYNAMIC_CAST(SWIGTYPE_p_XERCES_CPP_NAMESPACE__DOMNode, DOMNode_dynamic_cast);

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org