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
|
package SIS::Adapter;
# $Header: /cvsroot/systeminstaller/systeminstaller/lib/SIS/Adapter.pm,v 1.5 2003/01/21 22:18:47 mchasal Exp $
# Copyright (c) 2001 International Business Machines
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Sean Dague <sean@dague.net>
use strict;
use vars qw($VERSION @ATTR);
use base qw(SIS::Component);
use SIS::DB;
$VERSION = sprintf("%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/);
@ATTR = qw(client mac ip netmask devname);
sub new {
my $class = shift;
my $name = shift;
my @init = map {"_" . $_ => undef} @ATTR;
my %this = (
_vars => {
@init,
_devname => $name,
},
_cache => {
_primkey => '',
}
);
bless \%this, $class;
}
sub primkey {
my $this = shift;
return $this->{_cache}->{_primkey}; #client} . ":" . $this->{_devname};
}
sub valid {
my ($this, $name, $value) = @_;
if($name eq "client") {
return exists_client($value);
}
return 1;
}
sub devname {
my ($this, $value) = @_;
if(defined($value)) {
$this->{_vars}->{_devname} = $value;
my $client = $this->{_vars}->{_client} || "";
$this->{_cache}->{_primkey} = $this->{_vars}->{_devname} . ":" . $client;
}
return $this->{_vars}->{_devname}
}
sub client {
my ($this, $value) = @_;
if(defined($value)) {
$this->{_vars}->{_client} = $value;
my $dev = $this->{_vars}->{_devname} || "";
$this->{_cache}->{_primkey} = $dev . ":" . $this->{_vars}->{_client};
}
return $this->{_vars}->{_client}
}
1;
__END__;
|