-
Notifications
You must be signed in to change notification settings - Fork 4
/
theCircuit.pm
128 lines (114 loc) · 2.63 KB
/
theCircuit.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package theCircuit;
use strict;
use warnings;
use Data::Dumper;
sub new{## constrcutor
my ($class,$args) = @_;
my $self = bless {
name=> $args->{name},
inputs=> $args->{inputs},
count=> $args->{count},
bool_func=> $args->{bool_func}, # {OR, AND etc}
fwdgates=> $args->{fwdgates},
fwdgates_inst=> $args->{fwdgates_inst},
output => $args->{output},
processed => $args->{processed},
outputs => $args->{outputs},
fedbygates=> $args->{fedbygates},
fedbygates_inst=> $args->{fedbygates_inst},
}, $class;
}
### Setters and getters
sub get_name{
my $self = shift;
return $self->{name};
}
sub set_name{
my ($self,$new_name) = @_;
$self->{name} = $new_name;
}
sub get_output{
my $self = shift;
return $self->{output};
}
sub set_output{
my ($self,$new_output) = @_;
$self->{output} = $new_output;
}
sub get_count{
my $self = shift;
return $self->{count};
}
sub set_count{
my ($self,$new_count) = @_;
$self->{count} = $new_count;
}
sub get_outputs{
my $self = shift;
return @{$self->{outputs}};
}
sub set_outputs{
my ($self,$new_outputs) = @_;
$self->{outputs} = $new_outputs;
}
sub get_inputs{
my $self = shift;
return @{$self->{inputs}};
}
sub set_inputs{
my ($self,$new_inputs) = @_;
$self->{inputs} = $new_inputs;
}
sub get_bool_func{
my $self = shift;
return $self->{bool_func};
}
sub set_bool_func{
my ($self,$new_bool_func) = @_;
$self->{bool_func} = $new_bool_func;
}
sub get_fwdgates{
my $self = shift;
return @{$self->{fwdgates}};
}
sub set_fwdgates{
my ($self,$new_fwdgates) = @_;
$self->{fwdgates} = $new_fwdgates;
}
sub get_fwdgates_inst{
my $self = shift;
return @{$self->{fwdgates_inst}};
}
sub set_fwdgates_inst{
my ($self,$new_fwdgates_inst) = @_;
$self->{fwdgates_inst} = $new_fwdgates_inst;
}
sub get_processed{
my $self = shift;
return $self->{processed};
}
sub set_processed{
my ($self,$new_processed) = @_;
$self->{processed} = $new_processed;
}
sub get_fedbygates{
my $self = shift;
return @{$self->{fedbygates}};
}
sub set_fedbygates{
my ($self,$new_fedbygates) = @_;
$self->{fedbygates} = $new_fedbygates;
}
sub get_fedbygates_inst{
my $self = shift;
return @{$self->{fedbygates_inst}};
}
sub set_fedbygates_inst{
my ($self,$new_fedbygates_inst) = @_;
$self->{fedbygates_inst} = $new_fedbygates_inst;
}
sub to_string{
my $self = shift;
return "Name: $self->{name}\nCount: $self->{count}\nInputs: @{$self->{inputs}}\nBool_func: $self->{bool_func}\nfwdgates: @{$self->{fwdgates}}\nProcessed: $self->{processed}\nfedbygates: @{$self->{fedbygates}}\n";
}
1;