pidl/NDR: add ContainsPipe() function
[ira/wip.git] / pidl / lib / Parse / Pidl / NDR.pm
index 5ade5c175a1c83e35e8cb68f24b156a55db15165..7b1e0078311957a4347860478d387053515c81cc 100644 (file)
@@ -34,7 +34,7 @@ require Exporter;
 use vars qw($VERSION);
 $VERSION = '0.01';
 @ISA = qw(Exporter);
-@EXPORT = qw(GetPrevLevel GetNextLevel ContainsDeferred ContainsString);
+@EXPORT = qw(GetPrevLevel GetNextLevel ContainsDeferred ContainsPipe ContainsString);
 @EXPORT_OK = qw(GetElementLevelTable ParseElement ValidElement align_type mapToScalar ParseType can_contain_deferred is_charset_array);
 
 use strict;
@@ -853,6 +853,20 @@ sub ContainsDeferred($$)
        return 0;
 }
 
+sub ContainsPipe($$)
+{
+       my ($e,$l) = @_;
+
+       return 1 if ($l->{TYPE} eq "PIPE");
+
+       while ($l = GetNextLevel($e,$l))
+       {
+               return 1 if ($l->{TYPE} eq "PIPE");
+       }
+
+       return 0;
+}
+
 sub el_name($)
 {
        my $e = shift;