Loading ...
Sorry, an error occurred while loading the content.
 

Re: Can the server process parameters by name?

Expand Messages
  • One4K4
    Yeap, that did it... consider: package DocPub; @DocPub::ISA = SOAP::Server::Parameters ; Which solved my problem, using the pod doc s code sample. Thanks!
    Message 1 of 26 , Jun 13, 2002
      Yeap, that did it... consider:

      package DocPub;
      @DocPub::ISA = 'SOAP::Server::Parameters';

      Which solved my problem, using the pod doc's code sample.

      Thanks!

      -Tom

      --- In soaplite@y..., Keanan Smith <KSmith@n...> wrote:
      > "You will get this functionality ONLY if you inherit your class
      from the
      > SOAP::Server::Parameters class. This should keep existing code
      working and
      > provides this feature only when you need it."
      >
      > I think this may be what you are looking for...
      >
      > -----Original Message-----
      > From: One4K4 [mailto:one4k4@y...]
      > Sent: Thursday, June 13, 2002 8:51 AM
      > To: soaplite@y...
      > Subject: [soaplite] Re: Can the server process parameters by name?
      >
      >
      > From the SOAP::Lite pod docs:
      > ------------------------------------------------------
      > Every method on server side will be called as class/object method,
      so
      > it will get an object reference or a class name as the first
      > parameter, then the method parameters, and then an envelope as
      > SOAP::SOM object. Shortly:
      >
      > $self [, @parameters] , $envelope
      >
      > If you have a fixed number of parameters, you can do:
      >
      > my $self = shift;
      > my($param1, $param2) = @_;
      >
      > and ignore the envelope. If you need access to the envelope you can
      > do:
      >
      > my $envelope = pop;
      >
      > since the envelope is always the last element in the parameters
      list.
      > The byname() method pop->method will return a hash with parameter
      > names as hash keys and parameter values as hash values:
      >
      > my($a, $b, $c) = @{pop->method}{qw(a b c)};
      >
      > gives you by-name access to your parameters.
      > ------------------------------------------------------
      >
      > my($a, $b, $c) = @{pop->method}{qw(a b c)};
      > I've tried that... but for some reason there is *no envelope* at
      the
      > end of @_ ?!
      >
      > -Tom
      >
      >
      > --- In soaplite@y..., "Chris Davies" <Chris.Davies@M...> wrote:
      > > I'm using a SOAP::Lite server with version 0.46 of SOAP::Lite.
      > >
      > > My colleagues in a.n.other company want to use named parameters
      > (rather than
      > > positional ones) to talk to my SOAP::Lite server. They are using
      > MS .NET,
      > > and we're around most of the interoperability issues now. Is it
      > easy for a
      > > SOAP::Lite server to handle named parameters, and if so how do I
      > approach
      > > the problem?
      > >
      > > Thanks,
      > > Chris
      > > --
      > > Chris Davies, Manheim Interactive (Europe)
      > > Tel. 0870 444-0450 Fax. 0870 444-0482 Email. MOL@M...
      >
      >
      >
      > To unsubscribe from this group, send an email to:
      > soaplite-unsubscribe@y...
      >
      >
      >
      > Your use of Yahoo! Groups is subject to
      http://docs.yahoo.com/info/terms/
    • Paul Kulchenko
      Hi, Tom! There are also byName and byNameOrOrder functions (Randy Ray made a great suggestion to make them methods instead of functions) in
      Message 2 of 26 , Jun 13, 2002
        Hi, Tom!

        There are also byName and byNameOrOrder functions (Randy Ray made a
        great suggestion to make them methods instead of functions) in
        SOAP::Server::Parameters class that allow you to do this:

        my $self = shift;
        my($a, $b, $c) = SOAP::Server::Parameters::byName([qw(a b c)], @_);

        Take a look at \examples\My\Parameters.pm for more details.

        Best wishes, Paul.

        --- One4K4 <one4k4@...> wrote:
        > Yeap, that did it... consider:
        >
        > package DocPub;
        > @DocPub::ISA = 'SOAP::Server::Parameters';
        >
        > Which solved my problem, using the pod doc's code sample.
        >
        > Thanks!
        >
        > -Tom
        >
        > --- In soaplite@y..., Keanan Smith <KSmith@n...> wrote:
        > > "You will get this functionality ONLY if you inherit your class
        > from the
        > > SOAP::Server::Parameters class. This should keep existing code
        > working and
        > > provides this feature only when you need it."
        > >
        > > I think this may be what you are looking for...
        > >
        > > -----Original Message-----
        > > From: One4K4 [mailto:one4k4@y...]
        > > Sent: Thursday, June 13, 2002 8:51 AM
        > > To: soaplite@y...
        > > Subject: [soaplite] Re: Can the server process parameters by
        > name?
        > >
        > >
        > > From the SOAP::Lite pod docs:
        > > ------------------------------------------------------
        > > Every method on server side will be called as class/object
        > method,
        > so
        > > it will get an object reference or a class name as the first
        > > parameter, then the method parameters, and then an envelope as
        > > SOAP::SOM object. Shortly:
        > >
        > > $self [, @parameters] , $envelope
        > >
        > > If you have a fixed number of parameters, you can do:
        > >
        > > my $self = shift;
        > > my($param1, $param2) = @_;
        > >
        > > and ignore the envelope. If you need access to the envelope you
        > can
        > > do:
        > >
        > > my $envelope = pop;
        > >
        > > since the envelope is always the last element in the parameters
        > list.
        > > The byname() method pop->method will return a hash with parameter
        >
        > > names as hash keys and parameter values as hash values:
        > >
        > > my($a, $b, $c) = @{pop->method}{qw(a b c)};
        > >
        > > gives you by-name access to your parameters.
        > > ------------------------------------------------------
        > >
        > > my($a, $b, $c) = @{pop->method}{qw(a b c)};
        > > I've tried that... but for some reason there is *no envelope* at
        > the
        > > end of @_ ?!
        > >
        > > -Tom
        > >
        > >
        > > --- In soaplite@y..., "Chris Davies" <Chris.Davies@M...> wrote:
        > > > I'm using a SOAP::Lite server with version 0.46 of SOAP::Lite.
        > > >
        > > > My colleagues in a.n.other company want to use named parameters
        >
        > > (rather than
        > > > positional ones) to talk to my SOAP::Lite server. They are
        > using
        > > MS .NET,
        > > > and we're around most of the interoperability issues now. Is it
        >
        > > easy for a
        > > > SOAP::Lite server to handle named parameters, and if so how do
        > I
        > > approach
        > > > the problem?
        > > >
        > > > Thanks,
        > > > Chris
        > > > --
        > > > Chris Davies, Manheim Interactive (Europe)
        > > > Tel. 0870 444-0450 Fax. 0870 444-0482 Email. MOL@M...
        > >
        > >
        > >
        > > To unsubscribe from this group, send an email to:
        > > soaplite-unsubscribe@y...
        > >
        > >
        > >
        > > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >


        __________________________________________________
        Do You Yahoo!?
        Yahoo! - Official partner of 2002 FIFA World Cup
        http://fifaworldcup.yahoo.com
      Your message has been successfully submitted and would be delivered to recipients shortly.