/* soapPullPointSubscriptionBindingService.cpp Generated by gSOAP 2.8.138 for gen/onvif.h gSOAP XML Web services tools Copyright (C) 2000-2025, 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 -------------------------------------------------------------------------------- */ #include "soapPullPointSubscriptionBindingService.h" PullPointSubscriptionBindingService::PullPointSubscriptionBindingService() { this->soap = soap_new(); this->soap_own = true; PullPointSubscriptionBindingService_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); } PullPointSubscriptionBindingService::PullPointSubscriptionBindingService(const PullPointSubscriptionBindingService& rhs) { this->soap = rhs.soap; this->soap_own = false; } PullPointSubscriptionBindingService::PullPointSubscriptionBindingService(struct soap *_soap) { this->soap = _soap; this->soap_own = false; PullPointSubscriptionBindingService_init(_soap->imode, _soap->omode); } PullPointSubscriptionBindingService::PullPointSubscriptionBindingService(soap_mode iomode) { this->soap = soap_new(); this->soap_own = true; PullPointSubscriptionBindingService_init(iomode, iomode); } PullPointSubscriptionBindingService::PullPointSubscriptionBindingService(soap_mode imode, soap_mode omode) { this->soap = soap_new(); this->soap_own = true; PullPointSubscriptionBindingService_init(imode, omode); } PullPointSubscriptionBindingService::~PullPointSubscriptionBindingService() { if (this->soap_own) { PullPointSubscriptionBindingService::destroy(); soap_free(this->soap); } } void PullPointSubscriptionBindingService::PullPointSubscriptionBindingService_init(soap_mode imode, soap_mode omode) { soap_imode(this->soap, imode); soap_omode(this->soap, omode); static const struct Namespace namespaces[] = { { "SOAP-ENV", "http://www.w3.org/2003/05/soap-envelope", "http://schemas.xmlsoap.org/soap/envelope/", NULL }, { "SOAP-ENC", "http://www.w3.org/2003/05/soap-encoding", "http://schemas.xmlsoap.org/soap/encoding/", NULL }, { "xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL }, { "xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL }, { "wsa", "http://schemas.xmlsoap.org/ws/2004/08/addressing", "http://www.w3.org/2005/08/addressing", NULL }, { "wsdd", "http://schemas.xmlsoap.org/ws/2005/04/discovery", NULL, NULL }, { "c14n", "http://www.w3.org/2001/10/xml-exc-c14n#", NULL, NULL }, { "ds", "http://www.w3.org/2000/09/xmldsig#", NULL, NULL }, { "saml1", "urn:oasis:names:tc:SAML:1.0:assertion", NULL, NULL }, { "saml2", "urn:oasis:names:tc:SAML:2.0:assertion", NULL, NULL }, { "wsu", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", NULL, NULL }, { "xenc", "http://www.w3.org/2001/04/xmlenc#", NULL, NULL }, { "wsc", "http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512", "http://schemas.xmlsoap.org/ws/2005/02/sc", NULL }, { "wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd", NULL }, { "chan", "http://schemas.microsoft.com/ws/2005/02/duplex", NULL, NULL }, { "wsa5", "http://www.w3.org/2005/08/addressing", "http://schemas.xmlsoap.org/ws/2004/08/addressing", NULL }, { "wsrfbf", "http://docs.oasis-open.org/wsrf/bf-2", NULL, NULL }, { "xmime", "http://www.w3.org/2005/05/xmlmime", NULL, NULL }, { "xop", "http://www.w3.org/2004/08/xop/include", NULL, NULL }, { "tt", "http://www.onvif.org/ver10/schema", NULL, NULL }, { "wstop", "http://docs.oasis-open.org/wsn/t-1", NULL, NULL }, { "wsrfr", "http://docs.oasis-open.org/wsrf/r-2", NULL, NULL }, { "tds", "http://www.onvif.org/ver10/device/wsdl", NULL, NULL }, { "tevcpp", "http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding", NULL, NULL }, { "teve", "http://www.onvif.org/ver10/events/wsdl/EventBinding", NULL, NULL }, { "tevnc", "http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding", NULL, NULL }, { "tevnp", "http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding", NULL, NULL }, { "tevpp", "http://www.onvif.org/ver10/events/wsdl/PullPointBinding", NULL, NULL }, { "tevpps", "http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding", NULL, NULL }, { "tev", "http://www.onvif.org/ver10/events/wsdl", NULL, NULL }, { "tevps", "http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding", NULL, NULL }, { "wsnt", "http://docs.oasis-open.org/wsn/b-2", NULL, NULL }, { "tevs", "http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding", NULL, NULL }, { "timg", "http://www.onvif.org/ver20/imaging/wsdl", NULL, NULL }, { "tls", "http://www.onvif.org/ver10/display/wsdl", NULL, NULL }, { "tmd", "http://www.onvif.org/ver10/deviceIO/wsdl", NULL, NULL }, { "tptz", "http://www.onvif.org/ver20/ptz/wsdl", NULL, NULL }, { "trc", "http://www.onvif.org/ver10/recording/wsdl", NULL, NULL }, { "trp", "http://www.onvif.org/ver10/replay/wsdl", NULL, NULL }, { "trt", "http://www.onvif.org/ver10/media/wsdl", NULL, NULL }, { "trv", "http://www.onvif.org/ver10/receiver/wsdl", NULL, NULL }, { "tse", "http://www.onvif.org/ver10/search/wsdl", NULL, NULL }, { NULL, NULL, NULL, NULL} /* end of namespaces[] */ }; soap_set_namespaces(this->soap, namespaces); } void PullPointSubscriptionBindingService::destroy() { soap_destroy(this->soap); soap_end(this->soap); } void PullPointSubscriptionBindingService::reset() { this->destroy(); soap_done(this->soap); soap_initialize(this->soap); PullPointSubscriptionBindingService_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); } #ifndef WITH_PURE_VIRTUAL PullPointSubscriptionBindingService *PullPointSubscriptionBindingService::copy() { PullPointSubscriptionBindingService *dup = SOAP_NEW_UNMANAGED(PullPointSubscriptionBindingService); if (dup) { soap_done(dup->soap); soap_copy_context(dup->soap, this->soap); } return dup; } #endif PullPointSubscriptionBindingService& PullPointSubscriptionBindingService::operator=(const PullPointSubscriptionBindingService& rhs) { if (this->soap != rhs.soap) { if (this->soap_own) soap_free(this->soap); this->soap = rhs.soap; this->soap_own = false; } return *this; } int PullPointSubscriptionBindingService::soap_close_socket() { return soap_closesock(this->soap); } int PullPointSubscriptionBindingService::soap_force_close_socket() { return soap_force_closesock(this->soap); } int PullPointSubscriptionBindingService::soap_senderfault(const char *string, const char *detailXML) { return ::soap_sender_fault(this->soap, string, detailXML); } int PullPointSubscriptionBindingService::soap_senderfault(const char *subcodeQName, const char *string, const char *detailXML) { return ::soap_sender_fault_subcode(this->soap, subcodeQName, string, detailXML); } int PullPointSubscriptionBindingService::soap_receiverfault(const char *string, const char *detailXML) { return ::soap_receiver_fault(this->soap, string, detailXML); } int PullPointSubscriptionBindingService::soap_receiverfault(const char *subcodeQName, const char *string, const char *detailXML) { return ::soap_receiver_fault_subcode(this->soap, subcodeQName, string, detailXML); } void PullPointSubscriptionBindingService::soap_print_fault(FILE *fd) { ::soap_print_fault(this->soap, fd); } #ifndef WITH_LEAN #ifndef WITH_COMPAT void PullPointSubscriptionBindingService::soap_stream_fault(std::ostream& os) { ::soap_stream_fault(this->soap, os); } #endif char *PullPointSubscriptionBindingService::soap_sprint_fault(char *buf, size_t len) { return ::soap_sprint_fault(this->soap, buf, len); } #endif void PullPointSubscriptionBindingService::soap_noheader() { this->soap->header = NULL; } void PullPointSubscriptionBindingService::soap_header(char *wsa__MessageID, struct wsa__Relationship *wsa__RelatesTo, struct wsa__EndpointReferenceType *wsa__From, struct wsa__EndpointReferenceType *wsa__ReplyTo, struct wsa__EndpointReferenceType *wsa__FaultTo, char *wsa__To, char *wsa__Action, struct wsdd__AppSequenceType *wsdd__AppSequence, struct _wsse__Security *wsse__Security, char *wsa5__MessageID, struct wsa5__RelatesToType *wsa5__RelatesTo, struct wsa5__EndpointReferenceType *wsa5__From, struct wsa5__EndpointReferenceType *wsa5__ReplyTo, struct wsa5__EndpointReferenceType *wsa5__FaultTo, char *wsa5__To, char *wsa5__Action, struct chan__ChannelInstanceType *chan__ChannelInstance) { ::soap_header(this->soap); this->soap->header->wsa__MessageID = wsa__MessageID; this->soap->header->wsa__RelatesTo = wsa__RelatesTo; this->soap->header->wsa__From = wsa__From; this->soap->header->wsa__ReplyTo = wsa__ReplyTo; this->soap->header->wsa__FaultTo = wsa__FaultTo; this->soap->header->wsa__To = wsa__To; this->soap->header->wsa__Action = wsa__Action; this->soap->header->wsdd__AppSequence = wsdd__AppSequence; this->soap->header->wsse__Security = wsse__Security; this->soap->header->wsa5__MessageID = wsa5__MessageID; this->soap->header->wsa5__RelatesTo = wsa5__RelatesTo; this->soap->header->wsa5__From = wsa5__From; this->soap->header->wsa5__ReplyTo = wsa5__ReplyTo; this->soap->header->wsa5__FaultTo = wsa5__FaultTo; this->soap->header->wsa5__To = wsa5__To; this->soap->header->wsa5__Action = wsa5__Action; this->soap->header->chan__ChannelInstance = chan__ChannelInstance; } ::SOAP_ENV__Header *PullPointSubscriptionBindingService::soap_header() { return this->soap->header; } #ifndef WITH_NOIO int PullPointSubscriptionBindingService::run(int port, int backlog) { if (!soap_valid_socket(this->soap->master) && !soap_valid_socket(this->bind(NULL, port, backlog))) return this->soap->error; for (;;) { if (!soap_valid_socket(this->accept())) { if (this->soap->errnum == 0) // timeout? this->soap->error = SOAP_OK; break; } if (this->serve()) break; this->destroy(); } return this->soap->error; } #if defined(WITH_OPENSSL) || defined(WITH_GNUTLS) int PullPointSubscriptionBindingService::ssl_run(int port, int backlog) { if (!soap_valid_socket(this->soap->master) && !soap_valid_socket(this->bind(NULL, port, backlog))) return this->soap->error; for (;;) { if (!soap_valid_socket(this->accept())) { if (this->soap->errnum == 0) // timeout? this->soap->error = SOAP_OK; break; } if (this->ssl_accept() || this->serve()) break; this->destroy(); } return this->soap->error; } #endif SOAP_SOCKET PullPointSubscriptionBindingService::bind(const char *host, int port, int backlog) { return soap_bind(this->soap, host, port, backlog); } SOAP_SOCKET PullPointSubscriptionBindingService::accept() { return soap_accept(this->soap); } #if defined(WITH_OPENSSL) || defined(WITH_GNUTLS) int PullPointSubscriptionBindingService::ssl_accept() { return soap_ssl_accept(this->soap); } #endif #endif int PullPointSubscriptionBindingService::serve() { #ifndef WITH_FASTCGI this->soap->keep_alive = this->soap->max_keep_alive + 1; #endif do { #ifndef WITH_FASTCGI if (this->soap->keep_alive > 0 && this->soap->max_keep_alive > 0) this->soap->keep_alive--; #endif if (soap_begin_serve(this->soap)) { if (this->soap->error >= SOAP_STOP) continue; return this->soap->error; } if ((dispatch() || (this->soap->fserveloop && this->soap->fserveloop(this->soap))) && this->soap->error && this->soap->error < SOAP_STOP) { #ifdef WITH_FASTCGI soap_send_fault(this->soap); #else return soap_send_fault(this->soap); #endif } #ifdef WITH_FASTCGI soap_destroy(this->soap); soap_end(this->soap); } while (1); #else } while (this->soap->keep_alive); #endif return SOAP_OK; } static int serve___tevpps__PullMessages(struct soap*, PullPointSubscriptionBindingService*); static int serve___tevpps__Seek(struct soap*, PullPointSubscriptionBindingService*); static int serve___tevpps__SetSynchronizationPoint(struct soap*, PullPointSubscriptionBindingService*); int PullPointSubscriptionBindingService::dispatch() { return dispatch(this->soap); } int PullPointSubscriptionBindingService::dispatch(struct soap* soap) { PullPointSubscriptionBindingService_init(soap->imode, soap->omode); (void)soap_peek_element(soap); if (!soap_match_tag(soap, soap->tag, "tev:PullMessages")) return serve___tevpps__PullMessages(soap, this); if (!soap_match_tag(soap, soap->tag, "tev:Seek")) return serve___tevpps__Seek(soap, this); if (!soap_match_tag(soap, soap->tag, "tev:SetSynchronizationPoint")) return serve___tevpps__SetSynchronizationPoint(soap, this); return soap->error = SOAP_NO_METHOD; } static int serve___tevpps__PullMessages(struct soap *soap, PullPointSubscriptionBindingService *service) { struct __tevpps__PullMessages soap_tmp___tevpps__PullMessages; _tev__PullMessagesResponse tev__PullMessagesResponse; tev__PullMessagesResponse.soap_default(soap); soap_default___tevpps__PullMessages(soap, &soap_tmp___tevpps__PullMessages); if (!soap_get___tevpps__PullMessages(soap, &soap_tmp___tevpps__PullMessages, "-tevpps:PullMessages", NULL)) return soap->error; if (soap_body_end_in(soap) || soap_envelope_end_in(soap) || soap_end_recv(soap)) return soap->error; soap->error = service->PullMessages(soap_tmp___tevpps__PullMessages.tev__PullMessages, tev__PullMessagesResponse); if (soap->error) return soap->error; soap->encodingStyle = NULL; /* use SOAP literal style */ soap_serializeheader(soap); tev__PullMessagesResponse.soap_serialize(soap); if (soap_begin_count(soap)) return soap->error; if ((soap->mode & SOAP_IO_LENGTH)) { if (soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__PullMessagesResponse.soap_put(soap, "tev:PullMessagesResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap)) return soap->error; }; if (soap_end_count(soap) || soap_response(soap, SOAP_OK) || soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__PullMessagesResponse.soap_put(soap, "tev:PullMessagesResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap) || soap_end_send(soap)) return soap->error; return soap_closesock(soap); } static int serve___tevpps__Seek(struct soap *soap, PullPointSubscriptionBindingService *service) { struct __tevpps__Seek soap_tmp___tevpps__Seek; _tev__SeekResponse tev__SeekResponse; tev__SeekResponse.soap_default(soap); soap_default___tevpps__Seek(soap, &soap_tmp___tevpps__Seek); if (!soap_get___tevpps__Seek(soap, &soap_tmp___tevpps__Seek, "-tevpps:Seek", NULL)) return soap->error; if (soap_body_end_in(soap) || soap_envelope_end_in(soap) || soap_end_recv(soap)) return soap->error; soap->error = service->Seek(soap_tmp___tevpps__Seek.tev__Seek, tev__SeekResponse); if (soap->error) return soap->error; soap->encodingStyle = NULL; /* use SOAP literal style */ soap_serializeheader(soap); tev__SeekResponse.soap_serialize(soap); if (soap_begin_count(soap)) return soap->error; if ((soap->mode & SOAP_IO_LENGTH)) { if (soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__SeekResponse.soap_put(soap, "tev:SeekResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap)) return soap->error; }; if (soap_end_count(soap) || soap_response(soap, SOAP_OK) || soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__SeekResponse.soap_put(soap, "tev:SeekResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap) || soap_end_send(soap)) return soap->error; return soap_closesock(soap); } static int serve___tevpps__SetSynchronizationPoint(struct soap *soap, PullPointSubscriptionBindingService *service) { struct __tevpps__SetSynchronizationPoint soap_tmp___tevpps__SetSynchronizationPoint; _tev__SetSynchronizationPointResponse tev__SetSynchronizationPointResponse; tev__SetSynchronizationPointResponse.soap_default(soap); soap_default___tevpps__SetSynchronizationPoint(soap, &soap_tmp___tevpps__SetSynchronizationPoint); if (!soap_get___tevpps__SetSynchronizationPoint(soap, &soap_tmp___tevpps__SetSynchronizationPoint, "-tevpps:SetSynchronizationPoint", NULL)) return soap->error; if (soap_body_end_in(soap) || soap_envelope_end_in(soap) || soap_end_recv(soap)) return soap->error; soap->error = service->SetSynchronizationPoint(soap_tmp___tevpps__SetSynchronizationPoint.tev__SetSynchronizationPoint, tev__SetSynchronizationPointResponse); if (soap->error) return soap->error; soap->encodingStyle = NULL; /* use SOAP literal style */ soap_serializeheader(soap); tev__SetSynchronizationPointResponse.soap_serialize(soap); if (soap_begin_count(soap)) return soap->error; if ((soap->mode & SOAP_IO_LENGTH)) { if (soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__SetSynchronizationPointResponse.soap_put(soap, "tev:SetSynchronizationPointResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap)) return soap->error; }; if (soap_end_count(soap) || soap_response(soap, SOAP_OK) || soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || tev__SetSynchronizationPointResponse.soap_put(soap, "tev:SetSynchronizationPointResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap) || soap_end_send(soap)) return soap->error; return soap_closesock(soap); } /* End of server object code */