summaryrefslogtreecommitdiff
path: root/source4/build/pidl/Parse/Pidl/ODL.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/Parse/Pidl/ODL.pm')
-rw-r--r--source4/build/pidl/Parse/Pidl/ODL.pm92
1 files changed, 0 insertions, 92 deletions
diff --git a/source4/build/pidl/Parse/Pidl/ODL.pm b/source4/build/pidl/Parse/Pidl/ODL.pm
deleted file mode 100644
index 03d66bfc45..0000000000
--- a/source4/build/pidl/Parse/Pidl/ODL.pm
+++ /dev/null
@@ -1,92 +0,0 @@
-##########################################
-# Converts ODL stuctures to IDL structures
-# (C) 2004-2005 Jelmer Vernooij <jelmer@samba.org>
-
-package Parse::Pidl::ODL;
-
-use Parse::Pidl::Util qw(has_property);
-use Parse::Pidl::Typelist qw(hasType getType);
-use strict;
-
-#####################################################################
-# find an interface in an array of interfaces
-sub get_interface($$)
-{
- my($if) = shift;
- my($n) = shift;
-
- foreach(@{$if}) {
- if($_->{NAME} eq $n) { return $_; }
- }
-
- return 0;
-}
-
-sub FunctionAddObjArgs($)
-{
- my $e = shift;
-
- unshift(@{$e->{ELEMENTS}}, {
- 'NAME' => 'ORPCthis',
- 'POINTERS' => 0,
- 'PROPERTIES' => { 'in' => '1' },
- 'TYPE' => 'ORPCTHIS'
- });
- unshift(@{$e->{ELEMENTS}}, {
- 'NAME' => 'ORPCthat',
- 'POINTERS' => 0,
- 'PROPERTIES' => { 'out' => '1' },
- 'TYPE' => 'ORPCTHAT'
- });
-}
-
-sub ReplaceInterfacePointers($)
-{
- my $e = shift;
-
- foreach my $x (@{$e->{ELEMENTS}}) {
- next unless (hasType($x->{TYPE}));
- next unless getType($x->{TYPE})->{DATA}->{TYPE} eq "INTERFACE";
-
- $x->{TYPE} = "MInterfacePointer";
- }
-}
-
-# Add ORPC specific bits to an interface.
-sub ODL2IDL($)
-{
- my $odl = shift;
-
- foreach my $x (@{$odl}) {
- # Add [in] ORPCTHIS *this, [out] ORPCTHAT *that
- # and replace interfacepointers with MInterfacePointer
- # for 'object' interfaces
- if (has_property($x, "object")) {
- foreach my $e (@{$x->{DATA}}) {
- ($e->{TYPE} eq "FUNCTION") && FunctionAddObjArgs($e);
- ReplaceInterfacePointers($e);
- }
- # Object interfaces use ORPC
- my @depends = ();
- if(has_property($x, "depends")) {
- @depends = split /,/, $x->{PROPERTIES}->{depends};
- }
- push @depends, "orpc";
- $x->{PROPERTIES}->{depends} = join(',',@depends);
- }
-
- if ($x->{BASE}) {
- my $base = get_interface($odl, $x->{BASE});
-
- foreach my $fn (reverse @{$base->{DATA}}) {
- next unless ($fn->{TYPE} eq "FUNCTION");
- unshift (@{$x->{DATA}}, $fn);
- push (@{$x->{INHERITED_FUNCTIONS}}, $fn->{NAME});
- }
- }
- }
-
- return $odl;
-}
-
-1;