diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-08-11 19:48:36 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:57:51 -0500 |
commit | 1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a (patch) | |
tree | 3b193a8d482844dbdd05ae335882c800908bdd0f /source4/build/pidl/header.pm | |
parent | ca72bdfecbea2e332821bc292b4bb34f6c96ac2e (diff) | |
download | samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.gz samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.bz2 samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.zip |
r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl
- Support for inherited interfaces in pidl
- Simplification of the support for properties on an interface
- Start on dcom rpc torture tests
(This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
Diffstat (limited to 'source4/build/pidl/header.pm')
-rw-r--r-- | source4/build/pidl/header.pm | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/source4/build/pidl/header.pm b/source4/build/pidl/header.pm index 7618886bc2..589f9c6b54 100644 --- a/source4/build/pidl/header.pm +++ b/source4/build/pidl/header.pm @@ -9,8 +9,6 @@ use strict; my($res); my($tab_depth); -my $if_uuid; -my $if_version; sub tabs() { @@ -187,6 +185,7 @@ sub HeaderFunctionInOut($$) { my($fn) = shift; my($prop) = shift; + foreach my $e (@{$fn->{DATA}}) { if (util::has_property($e, $prop)) { HeaderElement($e); @@ -220,6 +219,7 @@ sub HeaderFunctionInOut_needed($$) sub HeaderFunction($) { my($fn) = shift; + $res .= "\nstruct $fn->{NAME} {\n"; $tab_depth++; my $needed = 0; @@ -272,12 +272,12 @@ sub HeaderInterface($) $res .= "#ifndef _HEADER_NDR_$interface->{NAME}\n"; $res .= "#define _HEADER_NDR_$interface->{NAME}\n\n"; - if (defined $if_uuid) { + if (defined $interface->{PROPERTIES}->{uuid}) { my $name = uc $interface->{NAME}; - $res .= "#define DCERPC_$name\_UUID \"$if_uuid\"\n"; + $res .= "#define DCERPC_$name\_UUID \"$interface->{PROPERTIES}->{uuid}\"\n"; - if(!defined $if_version) { $if_version = "0.0"; } - $res .= "#define DCERPC_$name\_VERSION $if_version\n"; + if(!defined $interface->{PROPERTIES}->{version}) { $interface->{PROPERTIES}->{version} = "0.0"; } + $res .= "#define DCERPC_$name\_VERSION $interface->{PROPERTIES}->{version}\n"; $res .= "#define DCERPC_$name\_NAME \"$interface->{NAME}\"\n\n"; $res .= "extern const struct dcerpc_interface_table dcerpc_table_$interface->{NAME};\n"; $res .= "NTSTATUS dcerpc_$interface->{NAME}_init(void);\n\n"; @@ -306,17 +306,6 @@ sub HeaderInterface($) } ##################################################################### -# parse the interface definitions -sub ModuleHeader($) -{ - my($h) = shift; - - $if_uuid = $h->{PROPERTIES}->{uuid}; - $if_version = $h->{PROPERTIES}->{version}; -} - - -##################################################################### # parse a parsed IDL into a C header sub Parse($) { @@ -325,9 +314,6 @@ sub Parse($) $res = "/* header auto-generated by pidl */\n\n"; foreach my $x (@{$idl}) { - ($x->{TYPE} eq "MODULEHEADER") && - ModuleHeader($x); - ($x->{TYPE} eq "INTERFACE") && HeaderInterface($x); } |