summaryrefslogtreecommitdiff
path: root/source4/build/pidl/clientfns.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/clientfns.pm')
-rw-r--r--source4/build/pidl/clientfns.pm127
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;