Amazon-SimpleDB
view release on metacpan or search on metacpan
lib/Amazon/SimpleDB.pm view on Meta::CPAN
use Amazon::SimpleDB::Domain;
use Amazon::SimpleDB::Response;
use constant SERVICE_URI => 'http://sdb.amazonaws.com/';
use constant KEEP_ALIVE_CACHESIZE => 10;
sub new {
my $class = shift;
my $args = shift || {};
my $self = bless $args, $class;
croak "No aws_access_key_id" unless $self->{aws_access_key_id};
croak "No aws_secret_access_key" unless $self->{aws_secret_access_key};
unless ($self->{agent}) {
my $agent = LWP::UserAgent->new(keep_alive => KEEP_ALIVE_CACHESIZE);
$agent->timeout(10);
$agent->env_proxy;
$self->{agent} = $agent;
}
return $self;
}
lib/Amazon/SimpleDB/Domain.pm view on Meta::CPAN
package Amazon::SimpleDB::Domain;
use strict;
use warnings;
use Amazon::SimpleDB::Response;
use Carp qw( croak );
sub new {
my $class = shift;
my $args = shift || {};
my $self = bless $args, $class;
croak "No account" unless $self->{account};
croak "No (domain) name" unless $self->{name};
return $self;
}
sub account { return $_[0]->{account} }
sub name { return $_[0]->{name} }
sub delete { return $_[0]->{account}->delete_domain($_[0]->{name}) }
# note: limit can be between 1 and 250. default is 100.
lib/Amazon/SimpleDB/Item.pm view on Meta::CPAN
package Amazon::SimpleDB::Item;
use strict;
use warnings;
use Amazon::SimpleDB::Response;
use Carp qw( croak );
sub new {
my $class = shift;
my $args = shift || {};
my $self = bless $args, $class;
croak "No account" unless $self->{account};
croak "No domain" unless $self->{domain};
croak "No (item) name" unless $self->{name};
return $self;
}
sub account { return $_[0]->{account} }
sub name { return $_[0]->{name} }
sub domain { return $_[0]->{domain} }
lib/Amazon/SimpleDB/Response.pm view on Meta::CPAN
croak $@ if $@;
my ($type) = keys %$tree;
if ($r->is_error) {
require Amazon::SimpleDB::ErrorResponse;
$class = 'Amazon::SimpleDB::ErrorResponse';
} elsif ($SPECIALS{$type}) {
$class = "Amazon::SimpleDB::${type}";
eval "use $class";
croak $@ if $@;
}
my $self = bless {}, $class;
$self->{'account'} = $args->{account};
$self->{'http_response'} = $r;
$self->{'http_status'} = $r->code;
$self->{'content'} = $tree;
$self->{'response_type'} = $type;
if ($r->is_success) { # errors are stored differently
$self->{'request_id'} = $tree->{$type}{ResponseMetadata}{RequestId};
$self->{'box_usage'} = $tree->{$type}{ResponseMetadata}{BoxUsage};
}
return $self;
( run in 2.121 seconds using v1.01-cache-2.11-cpan-b32c08c6d1a )