TOC PREV NEXT INDEX


C++ Code Generated for WSDL Operation Input/Output/Fault Types


For C++, a class definition is generated for each WSDL Operation onput/output/fault type defined in binding. This class is derived from the OSXSDComplexType run-time class. The class may contain a constructor for initialization of member variables and a destructor to free dynamic memory held by the class. Method declarations will also be generated instead of C function prototypes for encoding, decoding, printing, and generation of test data.
A sample section from sample CalcWSDL C++ header file is as follows:

 
/**************************************************************/
 
/*                                                            */
 
/*  OSXMLSoapFault                                            */
 
/*                                                            */
 
/**************************************************************/
 

 
class EXTERN OSXMLSoapFault : public OSXSDComplexType {
 
public:
 
   struct {
 
      unsigned faultactorPresent : 1;
 
   } m;
 
   OSXMLStringClass faultcode;
 
   OSXMLStringClass faultstring;
 
   OSXMLStringClass faultactor;
 

 
   OSXMLSoapFault ();
 
   OSXMLSoapFault (const OSXMLSoapFault&);
 
   virtual ~OSXMLSoapFault () {}
 

 
   virtual int encodeXML (OSRTMessageBufferIF& msgbuf,
 
      const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
 

 
   virtual int decodeXML (OSCTXT* pctxt);
 
...
 
} ;
 

/**
 
 * WSDL operation definitions
 
 */
 
/**************************************************************/
 
/*                                                            */
 
/*  Add                                                       */
 
/*                                                            */
 
/**************************************************************/
 
class EXTERN Add_Fault : public OSXSDComplexType {
 
public:
 
   struct {
 
      unsigned detailPresent : 1;
 
   } m;
 
   ::OSXMLSoapFault fault;
 
   OSXSDAnyTypeClass detail;
 

 
   Add_Fault ();
 
   Add_Fault (const Add_Fault&);
 
   virtual ~Add_Fault () {}
 

 
   virtual int encodeXML (OSRTMessageBufferIF& msgbuf,
 
      const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
 

 
   virtual int decodeXML (OSCTXT* pctxt);
 

 
   virtual void print (const char* name);
 
...
 
} ;
 

 
class EXTERN Add_Input : public OSXSDComplexType {
 
public:
 
   ::Operands_ELEM Operands;
 

 
   Add_Input ();
 
   Add_Input (const Add_Input&);
 
   virtual ~Add_Input () {}
 

 
   virtual int encodeXML (OSRTMessageBufferIF& msgbuf,
 
      const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
 

 
   virtual int decodeXML (OSCTXT* pctxt);
 

 
   static int validateXML (OSCTXT* pctxt);
 

 
   virtual void print (const char* name);
 

 
   OSRTBaseType* clone () const {
 
      return new Add_Input (*this);
 
   }
 

 
   Add_Input& operator= (const Add_Input&);
 
private:
 
   void defaultInit ();
 
   void doCommonCopy (const Add_Input& orig);
 
   void doCommonRelease ();
 

 
} ;
 

 
class EXTERN Add_Output : public OSXSDComplexType {
 
public:
 
   OSREAL Result;
 

 
   Add_Output ();
 
   Add_Output (const Add_Output&);
 
   virtual ~Add_Output () {}
 

 
   virtual int encodeXML (OSRTMessageBufferIF& msgbuf,
 
      const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
 

 
   virtual int decodeXML (OSCTXT* pctxt);
 

 
   static int validateXML (OSCTXT* pctxt);
 

 
   virtual void print (const char* name);
 
...
 
} ;
 

Copyright © Objective Systems 2002-2008
This document may be distributed in any form, electronic or otherwise, provided that it is distributed in its entirety and that the copyright and this notice are included.

Objective Systems, Inc.

55 Dowlin Forge Road
Exton, Pennsylvania 19341
http://www.obj-sys.com
Phone: (484) 875-9841
Toll-free: (877) 307-6855 (US only)
Fax: (484) 875-9830
info@obj-sys.com

TOC PREV NEXT INDEX