Changeset 10157
- Timestamp:
- 2005-06-23T11:22:04+12:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/arcinfo.pm
r7904 r10157 34 34 35 35 package arcinfo; 36 37 use constant ORDER_OID_INDEX => 0; 38 use constant ORDER_SORT_INDEX => 1; 39 40 use constant INFO_FILE_INDEX => 0; 41 use constant INFO_STATUS_INDEX => 1; 42 43 # File format read in: OID <tab> Filename <tab> Optional-Index-Status 44 45 # Index status can be: 46 # I = Index for the first time 47 # R = Reindex 48 # D = Delete 49 # B = Been indexed 36 50 37 51 sub new { … … 91 105 my $i = 0; 92 106 while ($i < scalar (@{$self->{'order'}})) { 93 if ($self->{'order'}->[$i]->[ 0] eq $OID) {107 if ($self->{'order'}->[$i]->[ORDER_OID_INDEX] eq $OID) { 94 108 splice (@{$self->{'order'}}, $i, 1); 95 109 last; … … 103 117 sub add_info { 104 118 my $self = shift (@_); 105 my ($OID, $doc_file, $ sortmeta) = @_;119 my ($OID, $doc_file, $index_status, $sortmeta) = @_; 106 120 $sortmeta = "" unless defined $sortmeta; 121 $index_status = "I" unless defined $index_status; # I = needs indexing 107 122 108 123 if (! defined($OID)) { … … 110 125 return undef; 111 126 } 127 112 128 $self->delete_info ($OID); 113 $self->{'info'}->{$OID} = [$doc_file ];129 $self->{'info'}->{$OID} = [$doc_file,$index_status]; 114 130 push (@{$self->{'order'}}, [$OID, $sortmeta]); 115 131 } 116 132 117 # returns a list of the form [[OID, doc_file], ...] 118 sub get_OID_list { 119 my $self = shift (@_); 120 121 my ($OID); 133 sub set_status_info { 134 my $self = shift (@_); 135 my ($OID, $index_status) = @_; 136 137 my $OID_info = $self->{'info'}->{$OID}; 138 $OID_info->[INFO_STATUS_INDEX] = $index_status; 139 } 140 141 142 sub get_status_info { 143 my $self = shift (@_); 144 my ($OID) = @_; 145 146 my $index_status = undef; 147 148 my $OID_info = $self->{'info'}->{$OID}; 149 if (defined $OID_info) { 150 $index_status = $OID_info->[INFO_STATUS_INDEX]; 151 } 152 else { 153 die "Unable to find document id $OID\n"; 154 } 155 156 return $index_status; 157 158 } 159 160 161 # returns a list of the form [[OID, doc_file, index_status], ...] 162 sub get_OID_list 163 { 164 my $self = shift (@_); 165 166 my $order = $self->{'order'}; 167 168 my @sorted_order 169 = sort {$a->[ORDER_SORT_INDEX] cmp $b->[ORDER_SORT_INDEX]} @$order; 170 122 171 my @list = (); 123 172 124 foreach $OID (sort {$a->[1] cmp $b->[1]} @{$self->{'order'}}) { 125 push (@list, [$OID->[0], $self->{'info'}->{$OID->[0]}->[0]]); 173 foreach my $OID_order (@sorted_order) { 174 my $OID = $OID_order->[ORDER_OID_INDEX]; 175 my $OID_info = $self->{'info'}->{$OID}; 176 177 push (@list, [$OID, $OID_info->[INFO_FILE_INDEX], 178 $OID_info->[INFO_STATUS_INDEX]]); 126 179 } 127 180 … … 133 186 my $self = shift (@_); 134 187 135 my ($OID); 188 my $order = $self->{'order'}; 189 190 my @sorted_order 191 = sort {$a->[ORDER_SORT_INDEX] cmp $b->[ORDER_SORT_INDEX]} @$order; 192 136 193 my @list = (); 137 194 138 foreach $OID (sort {$a->[1] cmp $b->[1]} @{$self->{'order'}}) { 139 push (@list, [$self->{'info'}->{$OID->[0]}->[0], $OID->[0]]); 195 foreach $OID_order (@sorted_order) { 196 my $OID = $OID_order->[ORDER_OID_INDEX]; 197 my $OID_info = $self->{'info'}->{$OID}; 198 199 push (@list, [$OID_info->[INFO_FILE_INDEX], $OID]); 140 200 } 141 201
Note:
See TracChangeset
for help on using the changeset viewer.