1 ###################################################
2 # Python function wrapper generator
3 # Copyright jelmer@samba.org 2007
4 # released under the GNU GPL
6 package Parse::Pidl::Samba4::Python;
12 use Parse::Pidl::Typelist;
13 use Parse::Pidl::Util qw(has_property ParseExpr);
15 use vars qw($VERSION);
20 my $self = { res => "", res_hdr => "", tabs => "", constants => {}};
27 $self->{res_hdr} .= shift;
34 $self->{res} .= $self->{tabs};
43 $self->{tabs} .= "\t";
49 $self->{tabs} = substr($self->{tabs}, 0, -1);
54 my($self,$basename,$ndr,$hdr) = @_;
57 $py_hdr =~ s/ndr_([^\/]+)$/py_$1/g;
59 $self->pidl_hdr("/* header auto-generated by pidl */\n\n");
62 /* Python wrapper functions auto-generated by pidl */
63 #include \"includes.h\"
70 $self->pidl("static PyMethodDef $basename\_methods[] = {");
72 $self->pidl("{ NULL, NULL, 0, NULL }");
78 $self->pidl("void init$basename(void)");
81 $self->pidl("PyObject *m;");
82 $self->pidl("m = Py_InitModule((char *)\"$basename\", $basename\_methods);");
86 return ($self->{res_hdr}, $self->{res});