SOAPonProtocol.h

Go to the documentation of this file.
00001 
00024 // SOAPonProtocol.h: interface for the SOAPonProtocol class.
00025 // Class Description: Provides a couple of methods that I think
00026 //      would be required regardless of whether SOAP messages were 
00027 //      transmitted using HTTP, SMTP, or something else.  So far,
00028 //      I've only done this using HTTP, so the full set of requirements
00029 //      hasn't been set yet.  Oh well.
00031 /*
00032 #if !defined(SOAPONPROTOCOL_H)
00033     #include "SOAPonProtocol.h"    
00034 #endif // !defined(SOAPONPROTOCOL_H)
00035 */
00036 #if !defined(SOAPONPROTOCOL_H)
00037 #define SOAPONPROTOCOL_H
00038 
00039 #ifndef _STRING_
00040     #include <string>
00041 #endif // _STRING_
00042 
00043 class SOAPMethod;
00044 class SOAPElement;
00045 
00046 class SOAPonProtocol
00047 {
00048 public:
00049     
00050     // Constructor/Destructor
00051     SOAPonProtocol();
00052     virtual ~SOAPonProtocol();
00053     
00054     // getSendableResponse
00055     // Description: Given a SOAP message that has already been
00056     //  translated to some sort of string, this call finsihes
00057     //  things by adding any text required by the implemented
00058     //  protocol.  
00059     // szSOAPMessage:
00060     //  The message without any protocol specific adornments.
00061     // bIsFault:
00062     //  The message contains a Fault.  
00063     // Returns:
00064     //  The message WITH protocol specific adornments.  This method
00065     //  is for use on the server side of a SOAP call.
00066     virtual std::string getSendableResponse( 
00067         const std::string& szSOAPMessage, bool bIsFault = false ) = 0;
00068     
00069     // send
00070     // Description: Given a SOAPMethod and the related class on 
00071     //  the server, executes the method and returns the response
00072     //  as a string.  If any protocol specifc items will impede the 
00073     //  parsing of the SOAP part of the message, this item should
00074     //  strip that off.
00075     // szClassName: 
00076     //  Name of the class that owns the method on the server.
00077     // aMethod:
00078     //  Represents the method being called complete with any arguments.
00079     virtual std::string send( const std::string& szClassName, 
00080         SOAPMethod& aMethod ) = 0;
00081     
00082     // getMethodDetails
00083     // Description: When a call comes in, this takes the method,
00084     //  takes out its "guts", and parses the message.  This method
00085     //  does not execute the actual message.  That is done
00086     //  by another object.  The parsing is done here because this
00087     //  object is intimate with the details of the overhead
00088     //  and calling information that comes with the given protocol.
00089     // Arguments:
00090     //  KszMessage: The message in its raw form.
00091     //  szObjectName: On return, this contains the name of the object
00092     //          to execute any methods on.
00093     //  szMethodName: On return, this contains the name of the method
00094     //          the caller wants to execute.
00095     //  theCall: On return, this contains the parsed SOAP message.
00096     // Return value:
00097     //  true: Successfully obtained all needed information.
00098     //  false: Something went wrong during the parse.  Look at
00099     //      szObjectName for the fault details as a sendable 
00100     //      SOAP string, minus the protocol specific stuff.
00101     virtual bool getMethodDetails( const std::string& KszMessage, 
00102         std::string& szObjectName, std::string& szMethodName, 
00103         SOAPElement& theCall ) = 0;
00104 };
00105 
00106 #endif // !defined(SOAPONPROTOCOL_H)

Generated on Tue Mar 28 09:10:15 2006 for Simple SOAP by  doxygen 1.4.6