Author: Wim Lavrijsen <[email protected]>
Branch: reflex-support
Changeset: r54050:97fa84af9049
Date: 2012-03-28 17:29 -0700
http://bitbucket.org/pypy/pypy/changeset/97fa84af9049/

Log:    doc strings with C++ signatures for CINT backend

diff --git a/pypy/module/cppyy/src/cintcwrapper.cxx 
b/pypy/module/cppyy/src/cintcwrapper.cxx
--- a/pypy/module/cppyy/src/cintcwrapper.cxx
+++ b/pypy/module/cppyy/src/cintcwrapper.cxx
@@ -525,6 +525,21 @@
     return cppstring_to_cstring("");
 }
 
+char* cppyy_method_signature(cppyy_scope_t handle, int method_index) {
+    TFunction* f = type_get_method(handle, method_index);
+    TClassRef cr = type_from_handle(handle);
+    std::ostringstream sig;
+    sig << cr.GetClassName() << "::" << f->GetName() << "(";
+    int nArgs = f->GetNargs();
+    for (int iarg = 0; iarg < nArgs; ++iarg) {
+        sig << 
((TMethodArg*)f->GetListOfMethodArgs()->At(iarg))->GetFullTypeName();
+        if (iarg != nArgs-1)
+            sig << ", ";
+    }
+    sig << ")" << std::ends;
+    return cppstring_to_cstring(sig.str());
+}
+
 cppyy_method_t cppyy_get_method(cppyy_scope_t handle, int method_index) {
     TFunction* f = type_get_method(handle, method_index);
     return (cppyy_method_t)f->InterfaceMethod();
diff --git a/pypy/module/cppyy/test/fragile_LinkDef.h 
b/pypy/module/cppyy/test/fragile_LinkDef.h
--- a/pypy/module/cppyy/test/fragile_LinkDef.h
+++ b/pypy/module/cppyy/test/fragile_LinkDef.h
@@ -15,6 +15,7 @@
 #pragma link C++ class fragile::G;
 #pragma link C++ class fragile::H;
 #pragma link C++ class fragile::I;
+#pragma link C++ class fragile::J;
 
 #pragma link C++ variable fragile::gI;
 
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to