Apache-Wyrd
view release on metacpan or search on metacpan
Wyrd/Services/Index.pm view on Meta::CPAN
=item nodata
Avoid processing, word-mapping, and storing the data attribute.
=back
=cut
#attributes - integer=name (self_path), 0=reverse, 1=timestamp, 2=digest, 3=data, 4=word, 5=count, 6=title, 7=keywords, 8=description
sub update_entry {
my ($self, $entry) = @_;
$self->set_error = "Index entries must be objects " unless (ref($entry));
#localize debug value so that the entry can modify it.
my $debug = $self->debug;
$self->{'runtime_flags'} = {};
if (UNIVERSAL::can($entry, 'index_runtime_flags')) {
map {$self->{'runtime_flags'}->{$_} => 1} token_parse($entry->index_runtime_flags);
$debug = 1 if ($self->{'runtime_flags'}->{'debug'});
$debug = 0 if ($self->{'runtime_flags'}->{'nodebug'});
}
Wyrd/Services/Index.pm view on Meta::CPAN
return undef if (($result eq 'DB_NOTFOUND') or !$result);
$self->recover_db;
$self->read_db;
$result = $self->db->db_get($key, $value);
return undef if (($result eq 'DB_NOTFOUND') or !$result);
$self->set_error("Could not get key: " . $result);
$self->check_error;
return;
}
sub update_key {
my ($self, $key, $value) = @_;
my $result = $self->db->db_put($key, $value);
return undef unless ($result);
$self->recover_db;
$self->write_db;
$result = $self->db->db_put($key, $value);
return undef unless ($result);
$self->set_error("Could not set key: " . $result);
$self->check_error;
return;
Wyrd/Services/MySQLIndex.pm view on Meta::CPAN
# $sh->execute;
# if ($sh->err) {
# $self->set_error($sh->errstr);
# }
# }
$self->{'db'} = undef;
$self->{'status'} = 'C';
return;
}
sub update_entry {
my ($self, $entry) = @_;
#Make sure the object being sent to this update is a valid one.
$self->set_error = "Index entries must be objects " unless (ref($entry));
#localize debug value so that the entry can modify it.
my $debug = $self->debug;
$self->{'runtime_flags'} = {};
if (UNIVERSAL::can($entry, 'index_runtime_flags')) {
map {$self->{'runtime_flags'}->{$_} => 1} token_parse($entry->index_runtime_flags);
$debug = 1 if ($self->{'runtime_flags'}->{'debug'});
Wyrd/Services/MySQLIndex.pm view on Meta::CPAN
my $sh = $self->db->prepare("select $attribute from _wyrd_index where id=?");
$sh->execute($id);
if ($sh->err) {
$self->set_error($sh->errstr);
}
my $data_ref = $sh->fetchrow_arrayref;
my $value = $data_ref->[0];
return $value;
}
sub update_key {
my ($self, $id, $attribute, $value) = @_;
my $sh = $self->db->prepare("update _wyrd_index set $attribute=? where id=?");
$sh->execute($value, $id);
if ($sh->err) {
$self->set_error($sh->errstr);
}
return;
}
sub delete_key {
Wyrd/Site/WidgetIndex.pm view on Meta::CPAN
sub new {
my ($class) = @_;
my $init = {
file => '/var/www/BASENAME/db/widgetindex.db',
strict => 1
};
return Apache::Wyrd::Services::Index::new($class, $init);
}
sub update_entry {
my ($self, $entry) = @_;
my $changed = 0;
my $index = $self->read_db;
my ($id, $id_is_new) = $self->get_id($entry->index_name);
$index->db_get("\x02\%$id", my $digest);
if ($digest ne $entry->index_digest) {
$index = $self->write_db;
$self->update_key($id, $entry->index_name);
$self->update_key("\x00%" . $entry->index_name, $id);
$self->update_key("\x02%" . $id, $entry->index_digest);
Wyrd/Site/WidgetIndex.pm view on Meta::CPAN
sub new {
my ($class, $init) = @_;
$init = {} unless (ref($init) eq 'HASH');
my $self = {};
$self->{'table'} = $init->{'table'} || '_wyrd_widgets';
bless $self, $class;
return $self;
}
sub update_entry {
my ($self, $entry) = @_;
my $dbh = $entry->dbl->dbh;
my $table = $self->{'table'};
my $changed = 0;
my $sh = $dbh->prepare("select digest from $table where name=?");
my $stored_digest = undef;
$sh->execute($entry->index_name);
if ($sh->err) {
my $failed = $self->_init_table($dbh, $table);
#if the DB can't be used, assume the widget has changed
( run in 0.273 second using v1.01-cache-2.11-cpan-95122f20152 )