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

RE: [soaplite] Re: Can the server process parameters by name?

Expand Messages
  • Keanan Smith
    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
    Message 1 of 26 , Jun 13, 2002
    • 0 Attachment
      "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@...]
      Sent: Thursday, June 13, 2002 8:51 AM
      To: soaplite@yahoogroups.com
      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@yahoogroups.com



      Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
    • 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 2 of 26 , Jun 13, 2002
      • 0 Attachment
        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 3 of 26 , Jun 13, 2002
        • 0 Attachment
          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.