summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:04:24 +0000
committerFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:04:24 +0000
commitdd8b9a38fb622104835a386b3fae86dcd718de31 (patch)
treef2d92ca5e111079c0b45790ba3303540911d7f1e
parent5d3228f77205dfb2a0e9f28f88f67602e2c37ee9 (diff)
downloadlasso-dd8b9a38fb622104835a386b3fae86dcd718de31.tar.gz
lasso-dd8b9a38fb622104835a386b3fae86dcd718de31.tar.xz
lasso-dd8b9a38fb622104835a386b3fae86dcd718de31.zip
[project @ fpeters@0d.be-20071101181800-r94oeih0q8hplrxo]
added support for standalone functions in lasso wrapper; and added renames for a bunch of them Original author: Frederic Peters <fpeters@0d.be> Date: 2007-11-01 19:18:00.896000+01:00
-rw-r--r--bindings/bindings.py3
-rw-r--r--bindings/lang_python.py21
-rw-r--r--bindings/overrides.xml6
3 files changed, 27 insertions, 3 deletions
diff --git a/bindings/bindings.py b/bindings/bindings.py
index 57bc0553..52597e45 100644
--- a/bindings/bindings.py
+++ b/bindings/bindings.py
@@ -128,6 +128,7 @@ class Struct:
class Function:
return_type = None
name = None
+ rename = None
args = None
docstring = None
@@ -149,6 +150,8 @@ class Function:
arg[2]['optional'] = True
if param.attrib.get('default'):
arg[2]['default'] = param.attrib.get('default')
+ if func.attrib.get('rename'):
+ self.rename = func.attrib.get('rename')
def normalise_var(type, name):
diff --git a/bindings/lang_python.py b/bindings/lang_python.py
index b97de2d8..8dba3eb2 100644
--- a/bindings/lang_python.py
+++ b/bindings/lang_python.py
@@ -41,6 +41,7 @@ class PythonBinding:
self.generate_constants(fd)
for clss in self.binding_data.structs:
self.generate_class(clss, fd)
+ self.generate_functions(fd)
self.generate_footer(fd)
fd.close()
@@ -400,6 +401,19 @@ import lasso
s = regex.sub(rep, s)
return s
+ def generate_functions(self, fd):
+ for m in self.binding_data.functions:
+ if m.name.endswith('_new') or '_new_' in m.name:
+ continue
+ if m.rename:
+ pname = m.rename
+ name = m.rename
+ else:
+ name = m.name[6:]
+ pname = utils.format_as_camelcase(name)
+ print >> fd, '%s = _lasso.%s' % (pname, name)
+
+
def generate_wrapper(self, fd):
print >> fd, open(os.path.join(self.binding_data.src_dir,
'lang_python_wrapper_top.c')).read()
@@ -656,9 +670,10 @@ register_constants(PyObject *d)
'''
def generate_function_wrapper(self, m, fd):
- name = m.name[6:]
- if name == 'strerror': # special case so it doesn't conflict with strerror(3)
- name = 'strError'
+ if m.rename:
+ name = m.rename
+ else:
+ name = m.name[6:]
self.wrapper_list.append(name)
print >> fd, '''static PyObject*
%s(PyObject *self, PyObject *args)
diff --git a/bindings/overrides.xml b/bindings/overrides.xml
index c9ec8bbb..331eea91 100644
--- a/bindings/overrides.xml
+++ b/bindings/overrides.xml
@@ -1,5 +1,11 @@
<?xml version="1.0"?>
<overrides>
+ <!-- functions -->
+ <func name="lasso_strerror" rename="strError"/>
+ <func name="lasso_profile_is_liberty_query" rename="isLibertyQuery"/>
+ <func name="lasso_profile_is_saml_query" rename="isSamlQuery"/>
+ <func name="lasso_profile_get_request_type_from_soap_msg"
+ rename="getRequestTypeFromSoapMsg"/>
<!-- LassoServer -->
<func name="lasso_server_new">
<param name="private_key" optional="true"/>