/* soapBasicHttpBinding_USCOREICalculatorProxy.h
   Generated by gSOAP 2.8.48 for calculator.h

gSOAP XML Web services tools
Copyright (C) 2000-2017, Robert van Engelen, Genivia Inc. All Rights Reserved.
The soapcpp2 tool and its generated software are released under the GPL.
This program is released under the GPL with the additional exemption that
compiling, linking, and/or using OpenSSL is allowed.
--------------------------------------------------------------------------------
A commercial use license is available from Genivia Inc., contact@genivia.com
--------------------------------------------------------------------------------
*/

#ifndef soapBasicHttpBinding_USCOREICalculatorProxy_H
#define soapBasicHttpBinding_USCOREICalculatorProxy_H
#include "soapH.h"

    class SOAP_CMAC BasicHttpBinding_USCOREICalculatorProxy {
      public:
        /// Context to manage proxy IO and data
        struct soap *soap;
        bool soap_own; ///< flag indicating that this context is owned by this proxy when context is shared
        /// Endpoint URL of service 'BasicHttpBinding_USCOREICalculatorProxy' (change as needed)
        const char *soap_endpoint;
        /// Variables globally declared in calculator.h, if any
        /// Construct a proxy with new managing context
        BasicHttpBinding_USCOREICalculatorProxy();
        /// Copy constructor
        BasicHttpBinding_USCOREICalculatorProxy(const BasicHttpBinding_USCOREICalculatorProxy& rhs);
        /// Construct proxy given a shared managing context
        BasicHttpBinding_USCOREICalculatorProxy(struct soap*);
        /// Constructor taking an endpoint URL
        BasicHttpBinding_USCOREICalculatorProxy(const char *endpoint);
        /// Constructor taking input and output mode flags for the new managing context
        BasicHttpBinding_USCOREICalculatorProxy(soap_mode iomode);
        /// Constructor taking endpoint URL and input and output mode flags for the new managing context
        BasicHttpBinding_USCOREICalculatorProxy(const char *endpoint, soap_mode iomode);
        /// Constructor taking input and output mode flags for the new managing context
        BasicHttpBinding_USCOREICalculatorProxy(soap_mode imode, soap_mode omode);
        /// Destructor deletes non-shared managing context only (use destroy() to delete deserialized data)
        virtual ~BasicHttpBinding_USCOREICalculatorProxy();
        /// Initializer used by constructors
        virtual void BasicHttpBinding_USCOREICalculatorProxy_init(soap_mode imode, soap_mode omode);
        /// Return a copy that has a new managing context with the same engine state
        virtual BasicHttpBinding_USCOREICalculatorProxy *copy() SOAP_PURE_VIRTUAL;
        /// Copy assignment
        BasicHttpBinding_USCOREICalculatorProxy& operator=(const BasicHttpBinding_USCOREICalculatorProxy&);
        /// Delete all deserialized data (uses soap_destroy() and soap_end())
        virtual void destroy();
        /// Delete all deserialized data and reset to default
        virtual void reset();
        /// Disables and removes SOAP Header from message by setting soap->header = NULL
        virtual void soap_noheader();
        /// Get SOAP Header structure (i.e. soap->header, which is NULL when absent)
        virtual ::SOAP_ENV__Header *soap_header();
        /// Get SOAP Fault structure (i.e. soap->fault, which is NULL when absent)
        virtual ::SOAP_ENV__Fault *soap_fault();
        /// Get SOAP Fault string (NULL when absent)
        virtual const char *soap_fault_string();
        /// Get SOAP Fault detail as string (NULL when absent)
        virtual const char *soap_fault_detail();
        /// Close connection (normally automatic, except for send_X ops)
        virtual int soap_close_socket();
        /// Force close connection (can kill a thread blocked on IO)
        virtual int soap_force_close_socket();
        /// Print fault
        virtual void soap_print_fault(FILE*);
    #ifndef WITH_LEAN
    #ifndef WITH_COMPAT
        /// Print fault to stream
        virtual void soap_stream_fault(std::ostream&);
    #endif
        /// Write fault to buffer
        virtual char *soap_sprint_fault(char *buf, size_t len);
    #endif
        /// Web service operation 'Add' (returns SOAP_OK or error code)
        virtual int Add(_mssamt__Add *mssamt__Add, _mssamt__AddResponse *mssamt__AddResponse)
        { return this->Add(NULL, NULL, mssamt__Add, mssamt__AddResponse); }
        virtual int Add(const char *soap_endpoint, const char *soap_action, _mssamt__Add *mssamt__Add, _mssamt__AddResponse *mssamt__AddResponse);
        /// Web service operation 'Subtract' (returns SOAP_OK or error code)
        virtual int Subtract(_mssamt__Subtract *mssamt__Subtract, _mssamt__SubtractResponse *mssamt__SubtractResponse)
        { return this->Subtract(NULL, NULL, mssamt__Subtract, mssamt__SubtractResponse); }
        virtual int Subtract(const char *soap_endpoint, const char *soap_action, _mssamt__Subtract *mssamt__Subtract, _mssamt__SubtractResponse *mssamt__SubtractResponse);
        /// Web service operation 'Multiply' (returns SOAP_OK or error code)
        virtual int Multiply(_mssamt__Multiply *mssamt__Multiply, _mssamt__MultiplyResponse *mssamt__MultiplyResponse)
        { return this->Multiply(NULL, NULL, mssamt__Multiply, mssamt__MultiplyResponse); }
        virtual int Multiply(const char *soap_endpoint, const char *soap_action, _mssamt__Multiply *mssamt__Multiply, _mssamt__MultiplyResponse *mssamt__MultiplyResponse);
        /// Web service operation 'Divide' (returns SOAP_OK or error code)
        virtual int Divide(_mssamt__Divide *mssamt__Divide, _mssamt__DivideResponse *mssamt__DivideResponse)
        { return this->Divide(NULL, NULL, mssamt__Divide, mssamt__DivideResponse); }
        virtual int Divide(const char *soap_endpoint, const char *soap_action, _mssamt__Divide *mssamt__Divide, _mssamt__DivideResponse *mssamt__DivideResponse);
    };
#endif
