Mercurial > hg > GearsTemplate
view src/parallel_execution/lib/Gears/Context.pm @ 572:3c35bcb82f08
mv Gears.pm to Gears/Context.pm
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Nov 2019 22:59:13 +0900 |
parents | src/parallel_execution/lib/Gears.pm@840597c5d242 |
children | 5f4b7ff18a34 |
line wrap: on
line source
package Gears::Context; use strict; use warnings; use Gears::Util; use DDP {deparse => 1}; sub new { my ($class, %args) = @_; p %args; my $self = { interfaces => [], data_gears_with_count => {}, }; if ($args{compile_sources}) { $self->{compile_sources} = $args{compile_sources}; map { Gears::Util->file_checking($_); } @{$self->{compile_sources}}; } return bless $self, $class; } sub extraction_dg_compile_sources { my $self = shift; map { $self->extraction_data_gears($_) } @{$self->{compile_sources}}; } sub extraction_data_gears { my ($self, $cbc_file) = @_; open my $fh , '<', $cbc_file; while (my $line = <$fh>) { if ($line =~ /#interface\s*"(.*)\.h"/) { $self->{data_gears_with_count}->{$1}->{caller}->{$cbc_file}++; push(@{$self->{interfaces}}, "$1.h"); next; } if ($line =~ /__code/) { while ($line =~ /struct (\w+)*/g) { $self->{data_gears_with_count}->{$1}->{caller}->{$cbc_file}++; } } } close $fh; } sub search_data_gears { my $self = shift; my @data_gears_name; if (@_) { @data_gears_name = @_; } else { @data_gears_name = keys %{$self->{data_gears_with_count}}; } #my @data_gears_name = keys %{$self->{data_gears_with_count}}; p @data_gears_name; } 1;