Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-local
authorAndrew Bartlett <abartlet@samba.org>
Wed, 26 Mar 2008 04:42:43 +0000 (15:42 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 26 Mar 2008 04:42:43 +0000 (15:42 +1100)
source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm

index 86b8951026c92aeaff8cb816ff943a025d8ea738..7a2575b8972203914a2e103da300c33eeffa3886 100644 (file)
@@ -44,6 +44,36 @@ sub new($)
        bless($self, $class);
 }
 
+sub ElementDirection($)
+{
+       my ($e) = @_;
+
+       return "[in,out]" if (has_property($e, "in") and has_property($e, "out"));
+       return "[in]" if (has_property($e, "in"));
+       return "[out]" if (has_property($e, "out"));
+       return "[in,out]";
+}
+
+sub HeaderProperties($$)
+{
+       my($props,$ignores) = @_;
+       my $ret = "";
+
+       foreach my $d (keys %{$props}) {
+               next if (grep(/^$d$/, @$ignores));
+               if($props->{$d} ne "1") {
+                       $ret.= "$d($props->{$d}),";
+               } else {
+                       $ret.="$d,";
+               }
+       }
+
+       if ($ret) {
+               return "[" . substr($ret, 0, -1) . "]";
+       }
+}
+
+
 sub ParseFunction($$$)
 {
        my ($self, $if, $fn) = @_;
@@ -57,7 +87,9 @@ sub ParseFunction($$$)
        $fn_args .= "struct rpc_pipe_client *cli,\n" . $pad . "TALLOC_CTX *mem_ctx";
 
        foreach (@{$fn->{ELEMENTS}}) {
-               $fn_args .= ",\n" . $pad . DeclLong($_);
+               my $dir = ElementDirection($_);
+               my $prop = HeaderProperties($_->{PROPERTIES}, ["in", "out"]);
+               $fn_args .= ",\n" . $pad . DeclLong($_) . " /* $dir $prop */";
        }
 
        if (defined($fn->{RETURN_TYPE}) && ($fn->{RETURN_TYPE} eq "WERROR")) {