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/parser.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/parser.pm')
-rw-r--r-- | source4/build/pidl/parser.pm | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index bc9eaa627f..51d561d4b2 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -13,10 +13,6 @@ use client; my %needed; my %structs; -my $if_uuid; -my $if_version; -my $if_endpoints; - sub pidl($) { print OUT shift; @@ -622,7 +618,7 @@ sub ParseElementPrintBuffer($$) } if (util::array_size($e)) { - ParseArrayPrint($e, $var_prefix); + ParseArrayPrint($e, $var_prefix) } elsif (my $switch = util::has_property($e, "switch_is")) { ParseElementPrintSwitch($e, $var_prefix, $switch); } else { @@ -1340,7 +1336,7 @@ sub ParseFunctionPull($) sub FunctionTable($) { my($interface) = shift; - my($data) = $interface->{DATA}; + my($data) = $interface->{INHERITED_DATA}; my $count = 0; my $uname = uc $interface->{NAME}; @@ -1368,11 +1364,11 @@ sub FunctionTable($) my $endpoints; - if (! defined $if_endpoints) { - $if_endpoints = $interface->{NAME}; + if (! defined $interface->{PROPERTIES}->{endpoints}) { + $interface->{PROPERTIES}->{endpoints} = $interface->{NAME}; } - my @e = split / /, $if_endpoints; + my @e = split / /, $interface->{PROPERTIES}->{endpoints}; my $endpoint_count = $#e + 1; pidl "static const char * const $interface->{NAME}\_endpoint_strings[] = {\n\t"; @@ -1501,17 +1497,6 @@ sub BuildNeeded($) } ##################################################################### -# parse the interface definitions -sub ModuleHeader($) -{ - my($h) = shift; - - $if_uuid = $h->{PROPERTIES}->{uuid}; - $if_version = $h->{PROPERTIES}->{version}; - $if_endpoints = $h->{PROPERTIES}->{endpoints}; -} - -##################################################################### # parse a parsed IDL structure back into an IDL file sub Parse($$) { @@ -1523,9 +1508,6 @@ sub Parse($$) pidl "/* parser auto-generated by pidl */\n\n"; pidl "#include \"includes.h\"\n\n"; foreach my $x (@{$idl}) { - ($x->{TYPE} eq "MODULEHEADER") && - ModuleHeader($x); - if ($x->{TYPE} eq "INTERFACE") { BuildNeeded($x); ParseInterface($x); |