view release on metacpan or search on metacpan
object parameter. Consider the "PingPong" example
(examples/My/PingPong.pm and examples/pingpong.pl):
Server Code:
package My::PingPong;
sub new {
my $self = shift;
my $class = ref($self) || $self;
bless {_num=>shift} => $class;
}
sub next {
my $self = shift;
$self->{_num}++;
}
Client Code:
use SOAP::Lite +autodispatch =>
examples/My/PersistentIterator.pm view on Meta::CPAN
package My::PersistentIterator;
my $iterator;
sub new {
my $self = shift;
my $class = ref($self) || $self;
$iterator ||= (bless {_num=>shift} => $class);
}
sub next {
my $self = shift;
$self->{_num}++;
}
1;
examples/My/PingPong.pm view on Meta::CPAN
package My::PingPong;
sub new {
my $self = shift;
my $class = ref($self) || $self;
bless {_num=>shift} => $class;
}
sub next {
my $self = shift;
$self->{_num}++;
}
sub value {
my $self = shift;
$self->{_num};
examples/My/SessionIterator.pm view on Meta::CPAN
package My::SessionIterator;
sub new {
my $self = shift;
my $class = ref($self) || $self;
bless {_num=>shift} => $class;
}
sub next {
my $self = shift;
$self->{_num}++;
}
1;
lib/SOAP/Lite.pm view on Meta::CPAN
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $self = shift;
return $self if ref $self;
my $class = ref($self) || $self;
SOAP::Trace::objects('()');
return bless {} => $class;
}
sub proxy {
my $self = shift;
$self = $self->new() if not ref $self;
my $class = ref $self;
return $self->{_proxy} unless @_;
lib/SOAP/Lite.pm view on Meta::CPAN
use overload fallback => 1, '""' => "stringify";
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $self = shift;
unless (ref $self) {
my $class = $self;
$self = bless {} => $class;
SOAP::Trace::objects('()');
}
Carp::carp "Odd (wrong?) number of parameters in new()"
if $^W && (@_ & 1);
no strict qw(refs);
while (@_) {
my $method = shift;
$self->$method(shift)
lib/SOAP/Lite.pm view on Meta::CPAN
@ISA = qw(Exporter);
@EXPORT_OK = qw(name type attr value uri);
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $self = shift;
unless (ref $self) {
my $class = $self;
$self = bless {_attr => {}, _value => [], _signature => []} => $class;
SOAP::Trace::objects('()');
}
no strict qw(refs);
Carp::carp "Odd (wrong?) number of parameters in new()" if $^W && (@_ & 1);
while (@_) {
my $method = shift;
$self->$method(shift) if $self->can($method)
}
return $self;
lib/SOAP/Lite.pm view on Meta::CPAN
# Ex.: $som->match('//Fault') ? 'SOAP call failed' : 'success';
use overload fallback => 1, 'bool' => sub { @{shift->{_current}} > 0 };
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $self = shift;
my $class = ref($self) || $self;
my $content = shift;
SOAP::Trace::objects('()');
return bless { _content => $content, _current => [$content] } => $class;
}
sub parts {
my $self = shift;
if (@_) {
$self->context->packager->parts(@_);
return $self;
}
else {
return $self->context->packager->parts;
lib/SOAP/Lite.pm view on Meta::CPAN
my($offset) = $attrs->{"{$SOAP::Constants::NS_ENC}offset"} =~ /^\[(\d+)\]$/
if exists $attrs->{"{$SOAP::Constants::NS_ENC}offset"};
unshift(@$res, (undef) x $offset) if $offset;
die "Too many elements in array. @{[scalar@$res]} instead of claimed $multisize ($size)\n"
if $multisize && $size < @$res;
# extend the array if number of elements is specified
$#$res = $dimensions[0]-1 if defined $dimensions[0] && @$res < $dimensions[0];
return defined $class && $class ne 'Array' ? bless($res => $class) : $res;
}
elsif ($name =~ /^\{$SOAP::Constants::NS_ENC\}Struct$/
|| !$schemaclass->can($method)
&& (ref $children || defined $class && $value =~ /^\s*$/)) {
my $res = {};
$self->hrefs->{$id} = $res if defined $id;
# Patch code introduced in 0.65 - deserializes array properly
# Decode each element of the struct.
lib/SOAP/Lite.pm view on Meta::CPAN
$res->{$child_name} = [ $res->{$child_name}, $child_value ];
}
else {
# already have an array: append to it
push @{$res->{$child_name}}, $child_value;
}
$child_count_of{$child_name}++;
}
# End patch code
return defined $class && $class ne 'SOAPStruct' ? bless($res => $class) : $res;
}
else {
my $res;
if (my $method_ref = $schemaclass->can($method)) {
$res = $method_ref->($self, $value, $name, $attrs, $children, $type);
}
else {
$res = $self->typecast($value, $name, $attrs, $children, $type);
$res = $class ? die "Unrecognized type '$type'\n" : $value
unless defined $res;
lib/SOAP/Lite.pm view on Meta::CPAN
$self = ref($soap) eq $class ? $soap->clone : {
_transport => SOAP::Transport->new,
_serializer => SOAP::Serializer->new,
_deserializer => SOAP::Deserializer->new,
_packager => SOAP::Packager::MIME->new,
_schema => undef,
_autoresult => 0,
_on_action => sub { sprintf '"%s#%s"', shift || '', shift },
_on_fault => sub {ref $_[1] ? return $_[1] : Carp::croak $_[0]->transport->is_success ? $_[1] : $_[0]->transport->status},
};
bless $self => $class;
$self->on_nonserialized($self->on_nonserialized || $self->serializer->on_nonserialized);
SOAP::Trace::objects('()');
}
Carp::carp "Odd (wrong?) number of parameters in new()" if $^W && (@_ & 1);
no strict qw(refs);
while (@_) {
my($method, $params) = splice(@_,0,2);
$self->can($method)
? $self->$method(ref $params eq 'ARRAY' ? @$params : $params)
lib/SOAP/Lite.pm view on Meta::CPAN
parameter. Consider the C<PingPong> example (F<examples/My/PingPong.pm>
and F<examples/pingpong.pl>):
B<Server Code>:
package My::PingPong;
sub new {
my $self = shift;
my $class = ref($self) || $self;
bless {_num=>shift} => $class;
}
sub next {
my $self = shift;
$self->{_num}++;
}
B<Client Code>:
use SOAP::Lite +autodispatch =>
lib/SOAP/Test.pm view on Meta::CPAN
our $TIMEOUT = 5;
# ======================================================================
package # hide from PAUSE
My::PingPong; # we'll use this package in our tests
sub new {
my $self = shift;
my $class = ref($self) || $self;
bless {_num=>shift} => $class;
}
sub next {
my $self = shift;
$self->{_num}++;
}
sub value {
my $self = shift;
$self->{_num};
lib/SOAP/Transport/MAILTO.pm view on Meta::CPAN
@ISA = qw(SOAP::Client);
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $class = shift;
return $class if ref $class;
my(@params, @methods);
while (@_) { $class->can($_[0]) ? push(@methods, shift() => shift) : push(@params, shift) }
my $self = bless {@params} => $class;
while (@methods) { my($method, $params) = splice(@methods,0,2);
$self->$method(ref $params eq 'ARRAY' ? @$params : $params)
}
SOAP::Trace::objects('()');
return $self;
}
sub send_receive {
my($self, %parameters) = @_;
lib/SOAP/Transport/TCP.pm view on Meta::CPAN
sub DESTROY { SOAP::Trace::objects('()') }
sub new {
my $self = shift;
unless (ref $self) {
my $class = ref($self) || $self;
my(@params, @methods);
while (@_) { $class->can($_[0]) ? push(@methods, shift() => shift) : push(@params, shift) }
$self = bless {@params} => $class;
while (@methods) { my($method, $params) = splice(@methods,0,2);
$self->$method(ref $params eq 'ARRAY' ? @$params : $params)
}
# use SSL if there is any parameter with SSL_* in the name
$self->SSL(1) if !$self->SSL && grep /^SSL_/, keys %$self;
SOAP::Trace::objects('()');
}
return $self;
}