/* soapcwmpService.h
   Generated by gSOAP 2.8.83 for trapi.h

gSOAP XML Web services tools
Copyright (C) 2000-2018, 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 soapcwmpService_H
#define soapcwmpService_H
#include "soapH.h"

    class SOAP_CMAC cwmpService {
      public:
        /// Context to manage service IO and data
        struct soap *soap;
        /// flag indicating that this context is owned by this service and should be deleted by the destructor
        bool soap_own;
        /// Variables globally declared in trapi.h, if any
        /// Construct a service with new managing context
        cwmpService();
        /// Copy constructor
        cwmpService(const cwmpService&);
        /// Construct service given a shared managing context
        cwmpService(struct soap*);
        /// Constructor taking input+output mode flags for the new managing context
        cwmpService(soap_mode iomode);
        /// Constructor taking input and output mode flags for the new managing context
        cwmpService(soap_mode imode, soap_mode omode);
        /// Destructor deletes deserialized data and its managing context, when the context was allocated by the contructor
        virtual ~cwmpService();
        /// Delete all deserialized data (with soap_destroy() and soap_end())
        virtual void destroy();
        /// Delete all deserialized data and reset to defaults
        virtual void reset();
        /// Initializer used by constructors
        virtual void cwmpService_init(soap_mode imode, soap_mode omode);
        /// Return a copy that has a new managing context with the same engine state
        virtual cwmpService *copy() SOAP_PURE_VIRTUAL_COPY;
        /// Copy assignment
        cwmpService& operator=(const cwmpService&);
        /// Close connection (normally automatic)
        virtual int soap_close_socket();
        /// Force close connection (can kill a thread blocked on IO)
        virtual int soap_force_close_socket();
        /// Return sender-related fault to sender
        virtual int soap_senderfault(const char *string, const char *detailXML);
        /// Return sender-related fault with SOAP 1.2 subcode to sender
        virtual int soap_senderfault(const char *subcodeQName, const char *string, const char *detailXML);
        /// Return receiver-related fault to sender
        virtual int soap_receiverfault(const char *string, const char *detailXML);
        /// Return receiver-related fault with SOAP 1.2 subcode to sender
        virtual int soap_receiverfault(const char *subcodeQName, const char *string, const char *detailXML);
        /// 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
        /// Disables and removes SOAP Header from message by setting soap->header = NULL
        virtual void soap_noheader();
        /// Add SOAP Header to message
        virtual void soap_header(struct _cwmp__SupportedCWMPVersions *cwmp__SupportedCWMPVersions, struct _cwmp__UseCWMPVersion *cwmp__UseCWMPVersion, struct _cwmp__SessionTimeout *cwmp__SessionTimeout, struct _cwmp__ID *cwmp__ID, struct _cwmp__HoldRequests *cwmp__HoldRequests);
        /// Get SOAP Header structure (i.e. soap->header, which is NULL when absent)
        virtual ::SOAP_ENV__Header *soap_header();
    #ifndef WITH_NOIO
        /// Run simple single-thread (iterative, non-SSL) service on port until a connection error occurs (returns SOAP_OK or error code), use this->bind_flag = SO_REUSEADDR to rebind for immediate rerun
        virtual int run(int port, int backlog = 1);
    #if defined(WITH_OPENSSL) || defined(WITH_GNUTLS)
        /// Run simple single-thread SSL service on port until a connection error occurs (returns SOAP_OK or error code), use this->bind_flag = SO_REUSEADDR to rebind for immediate rerun
        virtual int ssl_run(int port, int backlog = 1);
    #endif
        /// Bind service to port (returns master socket or SOAP_INVALID_SOCKET upon error)
        virtual SOAP_SOCKET bind(const char *host, int port, int backlog);
        /// Accept next request (returns socket or SOAP_INVALID_SOCKET upon error)
        virtual SOAP_SOCKET accept();
    #if defined(WITH_OPENSSL) || defined(WITH_GNUTLS)
        /// When SSL is used, after accept() should perform and accept SSL handshake
        virtual int ssl_accept();
    #endif
    #endif
        /// After accept() serve the pending request (returns SOAP_OK or error code)
        virtual int serve();
        /// Used by serve() to dispatch a pending request (returns SOAP_OK or error code)
        virtual int dispatch();
        virtual int dispatch(struct soap *soap);
        //
        // Service operations are listed below: you should define these
        // Note: compile with -DWITH_PURE_VIRTUAL to declare pure virtual methods
        //
        /// Web service operation 'GetParameterNames' implementation, should return SOAP_OK or error code
        virtual int GetParameterNames(struct _cwmp__GetParameterNames *cwmp__GetParameterNames, struct _cwmp__GetParameterNamesResponse *cwmp__GetParameterNamesResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'GetParameterValues' implementation, should return SOAP_OK or error code
        virtual int GetParameterValues(struct _cwmp__GetParameterValues *cwmp__GetParameterValues, struct _cwmp__GetParameterValuesResponse *cwmp__GetParameterValuesResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service one-way operation 'GetParameterValuesResponse' implementation, should return value of send_GetParameterValuesResponse_empty_response() to send HTTP Accept acknowledgment, or return an error code, or return SOAP_OK to immediately return without sending an HTTP response message
        virtual int GetParameterValuesResponse(struct _cwmp__GetParameterValuesResponse *cwmp__GetParameterValuesResponse) SOAP_PURE_VIRTUAL;
        /// Web service asynchronous send of HTTP Accept acknowledgment to be called in 'GetParameterValuesResponse', returns SOAP_OK or error code
        virtual int send_GetParameterValuesResponse_empty_response(int soap_http_status = 202) { return soap_send_empty_response(this->soap, soap_http_status); }
        //
        /// Web service operation 'SetParameterValues' implementation, should return SOAP_OK or error code
        virtual int SetParameterValues(struct _cwmp__SetParameterValues *cwmp__SetParameterValues, struct _cwmp__SetParameterValuesResponse *cwmp__SetParameterValuesResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'GetParameterAttributes' implementation, should return SOAP_OK or error code
        virtual int GetParameterAttributes(struct _cwmp__GetParameterAttributes *cwmp__GetParameterAttributes, struct _cwmp__GetParameterAttributesResponse *cwmp__GetParameterAttributesResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'SetParameterAttributes' implementation, should return SOAP_OK or error code
        virtual int SetParameterAttributes(struct _cwmp__SetParameterAttributes *cwmp__SetParameterAttributes, struct _cwmp__SetParameterAttributesResponse *cwmp__SetParameterAttributesResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'Download' implementation, should return SOAP_OK or error code
        virtual int Download(struct _cwmp__Download *cwmp__Download, struct _cwmp__DownloadResponse *cwmp__DownloadResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'Upload' implementation, should return SOAP_OK or error code
        virtual int Upload(struct _cwmp__Upload *cwmp__Upload, struct _cwmp__UploadResponse *cwmp__UploadResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'AddObject' implementation, should return SOAP_OK or error code
        virtual int AddObject(struct _cwmp__AddObject *cwmp__AddObject, struct _cwmp__AddObjectResponse *cwmp__AddObjectResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'DeleteObject' implementation, should return SOAP_OK or error code
        virtual int DeleteObject(struct _cwmp__DeleteObject *cwmp__DeleteObject, struct _cwmp__DeleteObjectResponse *cwmp__DeleteObjectResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'GetRPCMethods' implementation, should return SOAP_OK or error code
        virtual int GetRPCMethods(struct _cwmp__GetRPCMethods *cwmp__GetRPCMethods, struct _cwmp__GetRPCMethodsResponse *cwmp__GetRPCMethodsResponse) SOAP_PURE_VIRTUAL;
        //
        /// Web service operation 'Inform' implementation, should return SOAP_OK or error code
        virtual int Inform(struct _cwmp__Inform *cwmp__Inform, struct _cwmp__InformResponse *cwmp__InformResponse) SOAP_PURE_VIRTUAL;


};
#endif
