diff options
Diffstat (limited to 'source4/build/pidl/clientfns.pm')
-rw-r--r-- | source4/build/pidl/clientfns.pm | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/source4/build/pidl/clientfns.pm b/source4/build/pidl/clientfns.pm deleted file mode 100644 index ef107b16f0..0000000000 --- a/source4/build/pidl/clientfns.pm +++ /dev/null @@ -1,127 +0,0 @@ -################################################### -# clientfs boilerplate generator -# Copyright tpot@samba.org 2004 -# released under the GNU GPL - -package IdlClientFns; - -use strict; - -my($res); - -sub pidl($) -{ - $res .= shift; -} - -#use Data::Dumper; - -##################################################################### -# produce boilerplate code for a interface -sub Boilerplate_ClientFns($) -{ - my($interface) = shift; - my($data) = $interface->{DATA}; - my $name = $interface->{NAME}; - - foreach my $d (@{$data}) { - if ($d->{TYPE} eq "FUNCTION") { - - pidl "/*\n"; -# pidl Dumper($d); - pidl "\n*/\n\n"; - - pidl "$d->{RETURN_TYPE} $d->{NAME}(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx"; - - my $count = 0, my $i = 0; - - foreach my $a (@{$d->{DATA}}) { - $count++; - } - - pidl ", ", if $count > 0; - - foreach my $a (@{$d->{DATA}}) { - - pidl "/* ["; - if ($a->{PROPERTIES}->{in}) { - pidl "in"; - if ($a->{PROPERTIES}->{out} or - $a->{PROPERTIES}->{ref}) { - pidl ","; - } - } - if ($a->{PROPERTIES}->{out}) { - pidl "out"; - if ($a->{PROPERTIES}->{ref}) { - pidl ","; - } - } - if ($a->{PROPERTIES}->{ref}) { - pidl "ref"; - } - pidl "] */ "; - - pidl "struct ", if $a->{TYPE} eq "policy_handle"; - - pidl "$a->{TYPE} "; - if ($a->{PROPERTIES}->{out}) { - pidl "*"; - } - - if (!$a->{PROPERTIES}->{ref}) { - pidl "*", if $a->{POINTERS}; - } - - pidl "$a->{NAME}"; - - $i++; - - pidl ", ", if $i < $count; - } - pidl ")\n"; - pidl "{\n"; - - pidl "\tstruct $d->{NAME} r;\n"; - pidl "\tNTSTATUS status;\n"; - pidl "\n"; - - foreach $a (@{$d->{DATA}}) { - if ($a->{PROPERTIES}->{in}) { - pidl "\tr.in.$a->{NAME} = $a->{NAME};\n"; - } - if ($a->{PROPERTIES}->{out}) { - pidl "\tr.out.$a->{NAME} = $a->{NAME};\n"; - } - } - pidl "\n"; - - pidl "\tstatus = dcerpc_$d->{NAME}(p, mem_ctx, &r);\n"; - pidl "\n"; - - pidl "\treturn NT_STATUS_OK;\n"; - - pidl "}\n\n"; - } - } -} - -##################################################################### -# parse a parsed IDL structure back into an IDL file -sub Parse($) -{ - my($idl) = shift; - $res = "/* dcerpc client functions generated by pidl */\n\n"; - - $res .= "#include \"includes.h\"\n\n"; - - foreach my $x (@{$idl}) { - if ($x->{TYPE} eq "INTERFACE") { - Boilerplate_ClientFns($x); - } - } - - return $res; -} - -1; |