changeset 657:3e3f282d62e4

refactoring Gears perl modules
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 17 Aug 2020 20:44:34 +0900
parents 0aa2e7cde328
children 9f8527f5ab9d
files src/parallel_execution/lib/Gears/Context.pm src/parallel_execution/lib/Gears/Util.pm
diffstat 2 files changed, 28 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/lib/Gears/Context.pm	Sun Aug 16 14:13:12 2020 +0900
+++ b/src/parallel_execution/lib/Gears/Context.pm	Mon Aug 17 20:44:34 2020 +0900
@@ -32,11 +32,32 @@
   return Gears::Util->extraction_dg_compile_sources($compile_sources);
 }
 
+sub _docking_header_name_to_path {
+  my ($root_path, $data_gears_name) = @_;
+  my %res;
+  map { $res{$_}++ } @$data_gears_name;
+
+  my $header_paths = Gears::Util->find_headers_from_path($root_path);
+  map {
+    if (/(\w+)\.(?:h|dg)$/) {
+        my $header_file = $1;
+        if (exists $res{$header_file}) {
+          if ($res{$header_file} =~ /^\d+$/){
+            $res{$header_file} = $_;
+          } elsif (($_ =~ /\.dg$/) && ($res{$header_file} =~ /\.h$/)) {
+            $res{$header_file} = $_;
+          }
+        }
+    }
+  } sort @$header_paths;
+  return \%res;
+}
+
 sub set_data_gear_header_path {
   my $self = shift;
   my @data_gears_name;
   map { push (@data_gears_name,$_) if $_ ne "Context" } @_;
-  return Gears::Util->docking_header_name_to_path($self->{find_root},\@data_gears_name);
+  return _docking_header_name_to_path($self->{find_root},\@data_gears_name);
 }
 
 sub update_dg_each_header_path {
--- a/src/parallel_execution/lib/Gears/Util.pm	Sun Aug 16 14:13:12 2020 +0900
+++ b/src/parallel_execution/lib/Gears/Util.pm	Mon Aug 17 20:44:34 2020 +0900
@@ -158,26 +158,17 @@
   my $header_name = shift;
 
   my $find_path = shift // ".";
-  my @header_list = ();
+  my $header_list = Gears::Util->find_headers_from_path($find_path);
 
-  find(
-    {
-      wanted => sub {
-        if ($_ =~ /\/$header_name\.(h|dg)$/) {
-          push(@header_list,$_);
-        }
-      },
-      no_chdir => 1,
-    },
-    $find_path);
-  my @find_headers =  grep { $_ =~ /\/$header_name\.(h|dg)/} @header_list;
-  if (@find_headers > 1) {
-      @find_headers =  grep { $_ =~ /\/$header_name\.dg/} @find_headers;
+  my @find_headers =  grep { $_ =~ /\/$header_name\.(h|dg)/} @{$header_list};
+
+  if (@find_headers > 1) { # @find_headers == (hoge.h, hoge.dg)
+      @find_headers =  grep { $_ =~ /\/$header_name\.dg/} @find_headers; #only dg
   }
   return shift @find_headers;
 }
 
-sub find_headers_path {
+sub find_headers_from_path {
   my $class = shift;
   my $find_path = shift // ".";
 
@@ -304,25 +295,5 @@
   return \%counter;
 }
 
-sub docking_header_name_to_path {
-  my ($class, $search_bash_path, $targets) = @_;
-  my %res;
-  map { $res{$_}++ } @$targets;
-
-  my $header_paths = Gears::Util->find_headers_path($search_bash_path);
-  map {
-    if (/(\w+)\.(?:h|dg)$/) {
-        my $header_file = $1;
-        if (exists $res{$header_file}) {
-          if ($res{$header_file} =~ /^\d+$/){
-            $res{$header_file} = $_;
-          } elsif (($_ =~ /\.dg$/) && ($res{$header_file} =~ /\.h$/)) {
-            $res{$header_file} = $_;
-          }
-        }
-    }
-  } sort @$header_paths;
-  return \%res;
-}
 
 1;