2 # ============================================================================
3 # Zebra perl API header
4 # =============================================================================
6 # ============================================================================
7 package IDZebra::Repository;
9 use IDZebra::Logger qw(:flags :calls);
11 use Scalar::Util qw(weaken);
15 # -----------------------------------------------------------------------------
17 # -----------------------------------------------------------------------------
20 my ($proto,$session,%args) = @_;
21 my $class = ref($proto) || $proto;
23 $self->{session} = $session;
24 weaken ($self->{session});
25 $self->{rg} = IDZebra::recordGroup->new();
26 IDZebra::init_recordGroup($self->{rg});
27 bless ($self, $class);
28 unless ($self->_set_options(%args)) {
35 my ($self,%args) = @_;
36 $self->_set_options(%args);
40 my ($self, $groupName, $ext) = @_;
41 if ($#_ > 0) { $self->{rg}{groupName} = $groupName; }
42 $ext = "" unless ($ext);
43 IDZebra::res_get_recordGroup($self->{session}{zh}, $self->{rg}, $ext);
45 print "recordType:",$self->{rg}{recordType},"\n";
49 my ($self, %args) = @_;
51 foreach my $key (keys(%args)) {
52 $self->{rg}{$key} = $args{$key};
64 IDZebra::set_group($self->{session}{zh}, $self->{rg});
67 unless ($dbName = $self->{rg}{databaseName}) {
70 if (my $res = IDZebra::select_database($self->{session}{zh}, $dbName)) {
72 "Could not select database %s errCode=%d",
73 $self->{rg}{databaseName},
74 $self->{session}->errCode());
75 croak("Fatal error selecting database");
80 my ($self, %args) = @_;
81 $self->_set_options(%args);
82 IDZebra::repository_update($self->{session}{zh});
86 my ($self, %args) = @_;
87 $self->_set_options(%args);
88 IDZebra::repository_delete($self->{session}{zh});
92 my ($self, %args) = @_;
93 $self->_set_options(%args);
94 IDZebra::repository_show($self->{session}{zh});
98 my ($self, $buf, $sysno, $match, $fname) = @_;
100 $sysno = 0 unless ($sysno > 0);
101 $match = "" unless ($match);
102 $fname = "<no file>" unless ($fname);
104 return(IDZebra::update_record($self->{session}{zh},
106 $sysno,$match,$fname,
111 my ($self, $buf, $sysno, $match, $fname) = @_;
113 $sysno = 0 unless ($sysno > 0);
114 $match = "" unless ($match);
115 $fname = "<no file>" unless ($fname);
117 return(IDZebra::delete_record($self->{session}{zh},
119 $sysno,$match,$fname,
125 print STDERR "Destroy repository\n";
132 IDZebra::Repository -
144 Peter Popovics, pop@technomat.hu
148 IDZebra, IDZebra::Data1, Zebra documentation