Return-Path: Mailing-List: contact soap-dev-help@xml.apache.org; run by ezmlm Delivered-To: mailing list soap-dev@xml.apache.org Received: (qmail 45135 invoked from network); 2 Aug 2000 21:22:12 -0000 Received: from oe5.law4.hotmail.com (HELO hotmail.com) (216.33.148.109) by locus.apache.org with SMTP; 2 Aug 2000 21:22:12 -0000 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Wed, 2 Aug 2000 14:21:46 -0700 X-Originating-IP: [64.240.48.58] From: "Kailash Aynor" To: References: <712324ACD27BD011B17C0080AD17D38A1B5D6B@IBS_10> Subject: Re: C++ Implementation Date: Wed, 2 Aug 2000 17:40:02 -0400 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00C8_01BFFCA8.AFCA28B0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: X-OriginalArrivalTime: 02 Aug 2000 21:21:46.0322 (UTC) FILETIME=[A9913320:01BFFCC7] X-Spam-Rating: locus.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. ------=_NextPart_000_00C8_01BFFCA8.AFCA28B0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Looks good. I think we need a separate class for operation itself. This = would help in in setting the method specific attributes. ex., SOAPMethod method1("doSomething"); // now the attributes of this method = could be like timeout value, whether it is =20 // = synchronous call or asysnchronous. It essentially helps in abstracting = the methods. method1.setParameter("param1", "value"); method1.setEncodingStyle(SOAP_ENC); Also do u think, that setOperation() be a function of Payload. I like to = follow the tree structured assignment. ex; SOAPPayload::setEnvelope(envelope); envelope.setOperation(method1); Kail. ----- Original Message -----=20 From: James Snell=20 To: 'soap-dev@xml.apache.org' ; 'matkovitsg@uswest.net'=20 Sent: Wednesday, August 02, 2000 12:36 PM Subject: RE: C++ Implementation As an FYI, I started work last night on the following set of = components: EnvelopeWriter EnvelopeReader SOAPEnvelope SOAPHeader SOAPPayload These classes would provide a extensible factory approach to creating = SOAP Envelopes. Imagine the following psuedo code: SOAPEnvelope Envelope; SecurityHeader Header; /* SecurityHeader Extends SOAPHeader */ RPCPayload Payload; /* RPCPayload Extends SOAPPayload */ EnvelopeWriter Writer; Writer.setEnvelopeEncodingStyle(SOAP_ENC); Writer.createHeader(&Header); Header.mustUnderstand =3D true; Header.setActor(SOAP_ACTOR_NEXT); Header.setCredentials(USER_LOGIN, USER_PASSWORD); Writer.appendHeader(Header); Writer.createPayload(&Payload); Payload.setPayloadEncodingStyle(SOAP_ENC); Payload.setOperation("doSomething"); Payload.setParameter("param1", "value"); Payload.setParameter("param2", "value"); Writer.appendPayload(&Payload); Writer.getEnvelope(&Envelope); // Do whatever you want to do with Envelope from here on out ------=_NextPart_000_00C8_01BFFCA8.AFCA28B0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Looks good. I think we need a separate = class for=20 operation itself. This would help in in setting the method specific=20 attributes.
 
ex.,
SOAPMethod method1("doSomething"); // = now the=20 attributes of this method could be like timeout value, whether it=20 is        
       =20             =    =20             =    =20             =    =20     // synchronous call or asysnchronous. It essentially = helps in=20 abstracting the methods.
method1.setParameter("param1",=20 "value");
method1.setEncodingStyle(SOAP_ENC);
 
Also do u think, that setOperation() be = a function=20 of Payload. I like to follow the tree structured = assignment.
ex;
SOAPPayload::setEnvelope(envelope);
envelope.setOperation(method1);
 
 
Kail.
 
 
 
 
 
----- Original Message -----
From:=20 James=20 Snell
To: 'soap-dev@xml.apache.org' = ; 'matkovitsg@uswest.net' =
Sent: Wednesday, August 02, = 2000 12:36=20 PM
Subject: RE: C++ = Implementation

As an = FYI, I started=20 work last night on the following set of=20 = components:

EnvelopeWriter
EnvelopeReader
SOAPEnvelope
SO= APHeader
SOAPPayload

These=20 classes would provide a extensible factory approach to creating=20 SOAP
Envelopes.  Imagine the following psuedo=20 code:

   SOAPEnvelope   = Envelope;
  =20 SecurityHeader Header;   /* SecurityHeader Extends = SOAPHeader=20 */
   RPCPayload     Payload;  = /*=20 RPCPayload Extends SOAPPayload    */
  =20 EnvelopeWriter Writer;

  =20 Writer.setEnvelopeEncodingStyle(SOAP_ENC);
  =20 Writer.createHeader(&Header);
   = Header.mustUnderstand =3D=20 true;
   = Header.setActor(SOAP_ACTOR_NEXT);
  =20 Header.setCredentials(USER_LOGIN, USER_PASSWORD);
  =20 Writer.appendHeader(Header);

  =20 Writer.createPayload(&Payload);
  =20 Payload.setPayloadEncodingStyle(SOAP_ENC);
  =20 Payload.setOperation("doSomething");
  =20 Payload.setParameter("param1", "value");
  =20 Payload.setParameter("param2", "value");
  =20 Writer.appendPayload(&Payload);

  =20 Writer.getEnvelope(&Envelope);

   // Do whatever = you want=20 to do with Envelope from here on = out

------=_NextPart_000_00C8_01BFFCA8.AFCA28B0--