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 2006/10/13 23:24:47 UTC
svn commit: r463840 - /xerces/c/trunk/swig/interfaces/typemaps-xmlch.i
Author: jasons
Date: Fri Oct 13 14:24:46 2006
New Revision: 463840
URL: http://svn.apache.org/viewvc?view=rev&rev=463840
Log:
generic string typemaps
Added:
xerces/c/trunk/swig/interfaces/typemaps-xmlch.i
Added: xerces/c/trunk/swig/interfaces/typemaps-xmlch.i
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/interfaces/typemaps-xmlch.i?view=auto&rev=463840
==============================================================================
--- xerces/c/trunk/swig/interfaces/typemaps-xmlch.i (added)
+++ xerces/c/trunk/swig/interfaces/typemaps-xmlch.i Fri Oct 13 14:24:46 2006
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// in typemap
+%typemap(in) XMLCh * %{
+ // we convert *everything* into a string *including* undef
+ $1 = UTF8_TRANSCODER->Local2XMLString($input);
+%}
+
+%typemap(freearg) XMLCh * %{
+ delete[] $1;
+%}
+
+%exception XERCES_CPP_NAMESPACE::DOMLSInput::~DOMLSInput %{
+ try
+ {
+ XMLCh *current = (XMLCh *)(arg1)->getStringData();
+ if (current != NULL) {
+ delete [] current;
+ }
+ $action
+ }
+ CATCH_DOM_EXCEPTION
+%}
+
+%exception XERCES_CPP_NAMESPACE::DOMLSInput::setStringData %{
+ try
+ {
+ XMLCh *current = (XMLCh *)(arg1)->getStringData();
+ if (current != NULL) {
+ delete [] current;
+ }
+ $action
+ }
+ CATCH_DOM_EXCEPTION
+%}
+
+%extend XERCES_CPP_NAMESPACE::DOMLSInput {
+%typemap(freearg) const XMLCh* data ""
+}
+
+// out typemap
+%typemap(out) XMLCh * %{
+ $result = UTF8_TRANSCODER->XMLString2Local($1);
+ ++argvi;
+%}
+
+// %typemap(typecheck, precedence=70)
+// we must set a *really* low precedence on this because it will return
+// true for *everything*
+%typecheck(70)
+XMLCh*, const XMLCh*
+{
+ $1 = 1;
+}
+
+// for XMLSchemaDescription
+%apply XMLCh* { uint16_t* };
+
+/*
+ * Enable conversion of void* => XMLCh* in setProperty()
+ *
+ * The in typemap converts the void* to an XMLCh*
+ *
+ * The freearg typemap deletes the transcoded string
+ *
+ */
+%typemap(in) (void* value) {
+ // we convert *everything* into a string *including* undef
+ $1 = UTF8_TRANSCODER->Local2XMLString($input);
+}
+%typemap(freearg) void * %{
+ delete[] $1;
+%}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org