r3689: Large number of COM updates:
[samba.git] / source4 / build / pidl / client.pm
index 10ae81ec188a3645a569bdd8933d18f6098ec7d1..015ac05223b1b2090165738f028099fd9c5b3be6 100644 (file)
@@ -11,44 +11,33 @@ my($res);
 
 #####################################################################
 # parse a function
-sub ParseFunction($)
+sub ParseFunction($$)
 {
+       my $interface = shift;
        my $fn = shift;
        my $name = $fn->{NAME};
        my $uname = uc $name;
 
-       return if (util::has_property($fn, "local"));
-
-       my $objargdef = "";
-       my $objarg = ", NULL";
-       if (util::has_property($fn, "object")) {
-               $objargdef = ", struct GUID *object";
-               $objarg = ", object";
-       }
-
-       $res .= 
-"
-struct rpc_request *dcerpc_$name\_send(struct dcerpc_pipe *p$objargdef, TALLOC_CTX *mem_ctx, struct $name *r)
+       $res .= "
+struct rpc_request *dcerpc_$name\_send(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)
 {
-        if (p->flags & DCERPC_DEBUG_PRINT_IN) {
+
+    if (p->flags & DCERPC_DEBUG_PRINT_IN) {
                NDR_PRINT_IN_DEBUG($name, r);           
        }
 
-       return dcerpc_ndr_request_send(p$objarg, DCERPC_$uname, mem_ctx,
+       return dcerpc_ndr_request_send(p, NULL, DCERPC_$uname, mem_ctx,
                                    (ndr_push_flags_fn_t) ndr_push_$name,
                                    (ndr_pull_flags_fn_t) ndr_pull_$name,
                                    r, sizeof(*r));
 }
 
-";
-
-       $objarg = "" unless (util::has_property($fn, "object"));
-       $res .= 
-"
-NTSTATUS dcerpc_$name(struct dcerpc_pipe *p$objargdef, TALLOC_CTX *mem_ctx, struct $name *r)
+NTSTATUS dcerpc_$name(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)
 {
-       struct rpc_request *req = dcerpc_$name\_send(p$objarg, mem_ctx, r);
+       struct rpc_request *req;
        NTSTATUS status;
+       
+       req = dcerpc_$name\_send(p, mem_ctx, r);
        if (req == NULL) return NT_STATUS_NO_MEMORY;
 
        status = dcerpc_ndr_request_recv(req);
@@ -74,22 +63,10 @@ sub ParseInterface($)
 {
        my($interface) = shift;
        my($data) = $interface->{DATA};
+       $res = "/* Client functions generated by pidl */\n\n";
        foreach my $d (@{$data}) {
                ($d->{TYPE} eq "FUNCTION") && 
-                   ParseFunction($d);
-       }
-}
-
-
-#####################################################################
-# parse a parsed IDL structure back into an IDL file
-sub Parse($)
-{
-       my($idl) = shift;
-       $res = "/* dcerpc client calls generated by pidl */\n\n";
-       foreach my $x (@{$idl}) {
-               ($x->{TYPE} eq "INTERFACE") && 
-                   ParseInterface($x);
+                   ParseFunction($interface, $d);
        }
        return $res;
 }