int CustomBinding_DumpUploadService3_UploaderProxy::UploadSymbol(const char *endpoint, const char *soap_action, _ns1__UploadSymbol *ns1__UploadSymbol, _ns1__UploadSymbolResponse *ns1__UploadSymbolResponse)
{   struct soap *soap = this;
    struct __ns1__UploadSymbol soap_tmp___ns1__UploadSymbol;
    if (endpoint)
        soap_endpoint = endpoint;
    if (soap_endpoint == NULL)
        soap_endpoint = "http://localhost:59175/Service/DumpUploader3.svc";
    if (soap_action == NULL)
        soap_action = "https://www.drdump.com/services/DumpUploadService3.Uploader/UploadSymbol";
    soap_begin(soap);
    soap->encodingStyle = NULL;
    soap_tmp___ns1__UploadSymbol.ns1__UploadSymbol = ns1__UploadSymbol;
    soap_set_version(soap, 2); /* SOAP1.2 */
    soap_serializeheader(soap);
    soap_serialize___ns1__UploadSymbol(soap, &soap_tmp___ns1__UploadSymbol);
    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)
         || soap_put___ns1__UploadSymbol(soap, &soap_tmp___ns1__UploadSymbol, "-ns1:UploadSymbol", NULL)
         || soap_body_end_out(soap)
         || soap_envelope_end_out(soap))
             return soap->error;
    }
    if (soap_end_count(soap))
        return soap->error;
    if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
     || soap_envelope_begin_out(soap)
     || soap_putheader(soap)
     || soap_body_begin_out(soap)
     || soap_put___ns1__UploadSymbol(soap, &soap_tmp___ns1__UploadSymbol, "-ns1:UploadSymbol", NULL)
     || soap_body_end_out(soap)
     || soap_envelope_end_out(soap)
     || soap_end_send(soap))
        return soap_closesock(soap);
    if (!ns1__UploadSymbolResponse)
        return soap_closesock(soap);
    ns1__UploadSymbolResponse->soap_default(soap);
    if (soap_begin_recv(soap)
     || soap_envelope_begin_in(soap)
     || soap_recv_header(soap)
     || soap_body_begin_in(soap))
        return soap_closesock(soap);
    ns1__UploadSymbolResponse->soap_get(soap, "ns1:UploadSymbolResponse", "");
    if (soap->error)
        return soap_recv_fault(soap, 0);
    if (soap_body_end_in(soap)
     || soap_envelope_end_in(soap)
     || soap_end_recv(soap))
        return soap_closesock(soap);
    return soap_closesock(soap);
}
int DoorControlBindingProxy::DoubleLockDoor(const char *endpoint, const char *soap_action, _ns5__DoubleLockDoor *ns5__DoubleLockDoor, _ns5__DoubleLockDoorResponse *ns5__DoubleLockDoorResponse)
{	struct soap *soap = this;
	struct __ns5__DoubleLockDoor soap_tmp___ns5__DoubleLockDoor;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/doorcontrol/wsdl/DoubleLockDoor";
	soap->encodingStyle = NULL;
	soap_tmp___ns5__DoubleLockDoor.ns5__DoubleLockDoor = ns5__DoubleLockDoor;
	soap_begin(soap);
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___ns5__DoubleLockDoor(soap, &soap_tmp___ns5__DoubleLockDoor);
	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)
		 || soap_put___ns5__DoubleLockDoor(soap, &soap_tmp___ns5__DoubleLockDoor, "-ns5:DoubleLockDoor", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___ns5__DoubleLockDoor(soap, &soap_tmp___ns5__DoubleLockDoor, "-ns5:DoubleLockDoor", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!ns5__DoubleLockDoorResponse)
		return soap_closesock(soap);
	ns5__DoubleLockDoorResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	ns5__DoubleLockDoorResponse->soap_get(soap, "ns5:DoubleLockDoorResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int ReceiverBindingProxy::GetReceiverState(const char *endpoint, const char *soap_action, _trv__GetReceiverState *trv__GetReceiverState, _trv__GetReceiverStateResponse *trv__GetReceiverStateResponse)
{	struct soap *soap = this;
	struct __trv__GetReceiverState soap_tmp___trv__GetReceiverState;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/receiver/wsdl/GetReceiverState";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___trv__GetReceiverState.trv__GetReceiverState = trv__GetReceiverState;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___trv__GetReceiverState(soap, &soap_tmp___trv__GetReceiverState);
	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)
		 || soap_put___trv__GetReceiverState(soap, &soap_tmp___trv__GetReceiverState, "-trv:GetReceiverState", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___trv__GetReceiverState(soap, &soap_tmp___trv__GetReceiverState, "-trv:GetReceiverState", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!trv__GetReceiverStateResponse)
		return soap_closesock(soap);
	trv__GetReceiverStateResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	trv__GetReceiverStateResponse->soap_get(soap, "trv:GetReceiverStateResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int SearchBindingProxy::GetMetadataSearchResults(const char *endpoint, const char *soap_action, _tse__GetMetadataSearchResults *tse__GetMetadataSearchResults, _tse__GetMetadataSearchResultsResponse *tse__GetMetadataSearchResultsResponse)
{	struct soap *soap = this;
	struct __tse__GetMetadataSearchResults soap_tmp___tse__GetMetadataSearchResults;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/search/wsdl/GetMetadataSearchResults";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tse__GetMetadataSearchResults.tse__GetMetadataSearchResults = tse__GetMetadataSearchResults;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tse__GetMetadataSearchResults(soap, &soap_tmp___tse__GetMetadataSearchResults);
	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)
		 || soap_put___tse__GetMetadataSearchResults(soap, &soap_tmp___tse__GetMetadataSearchResults, "-tse:GetMetadataSearchResults", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tse__GetMetadataSearchResults(soap, &soap_tmp___tse__GetMetadataSearchResults, "-tse:GetMetadataSearchResults", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!tse__GetMetadataSearchResultsResponse)
		return soap_closesock(soap);
	tse__GetMetadataSearchResultsResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	tse__GetMetadataSearchResultsResponse->soap_get(soap, "tse:GetMetadataSearchResultsResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int RemoteDiscoveryBindingProxy::Probe(const char *endpoint, const char *soap_action, struct wsdd__ProbeType tdn__Probe, struct wsdd__ProbeMatchesType &tdn__ProbeResponse)
{	struct soap *soap = this->soap;
	struct __tdn__Probe soap_tmp___tdn__Probe;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/network/wsdl/Probe";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tdn__Probe.tdn__Probe = tdn__Probe;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tdn__Probe(soap, &soap_tmp___tdn__Probe);
	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)
		 || soap_put___tdn__Probe(soap, &soap_tmp___tdn__Probe, "-tdn:Probe", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tdn__Probe(soap, &soap_tmp___tdn__Probe, "-tdn:Probe", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!&tdn__ProbeResponse)
		return soap_closesock(soap);
	soap_default_wsdd__ProbeMatchesType(soap, &tdn__ProbeResponse);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	soap_get_wsdd__ProbeMatchesType(soap, &tdn__ProbeResponse, "tdn:ProbeResponse", "wsdd:ProbeMatchesType");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int ImagingBindingProxy::Stop(const char *endpoint, const char *soap_action, _timg__Stop *timg__Stop, _timg__StopResponse *timg__StopResponse)
{	struct soap *soap = this;
	struct __timg__Stop soap_tmp___timg__Stop;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver20/imaging/wsdl/FocusStop";
	soap->encodingStyle = NULL;
	soap_tmp___timg__Stop.timg__Stop = timg__Stop;
	soap_begin(soap);
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___timg__Stop(soap, &soap_tmp___timg__Stop);
	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)
		 || soap_put___timg__Stop(soap, &soap_tmp___timg__Stop, "-timg:Stop", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___timg__Stop(soap, &soap_tmp___timg__Stop, "-timg:Stop", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!timg__StopResponse)
		return soap_closesock(soap);
	timg__StopResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	timg__StopResponse->soap_get(soap, "timg:StopResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int PACSBindingProxy::ExternalAuthorization(const char *endpoint, const char *soap_action, _ns3__ExternalAuthorization *ns3__ExternalAuthorization, _ns3__ExternalAuthorizationResponse *ns3__ExternalAuthorizationResponse)
{	struct soap *soap = this;
	struct __ns3__ExternalAuthorization soap_tmp___ns3__ExternalAuthorization;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/accesscontrol/wsdl/ExternalAuthorization";
	soap->encodingStyle = NULL;
	soap_tmp___ns3__ExternalAuthorization.ns3__ExternalAuthorization = ns3__ExternalAuthorization;
	soap_begin(soap);
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___ns3__ExternalAuthorization(soap, &soap_tmp___ns3__ExternalAuthorization);
	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)
		 || soap_put___ns3__ExternalAuthorization(soap, &soap_tmp___ns3__ExternalAuthorization, "-ns3:ExternalAuthorization", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___ns3__ExternalAuthorization(soap, &soap_tmp___ns3__ExternalAuthorization, "-ns3:ExternalAuthorization", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!ns3__ExternalAuthorizationResponse)
		return soap_closesock(soap);
	ns3__ExternalAuthorizationResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	ns3__ExternalAuthorizationResponse->soap_get(soap, "ns3:ExternalAuthorizationResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int DisplayBindingProxy::DeletePaneConfiguration(const char *endpoint, const char *soap_action, _tls__DeletePaneConfiguration *tls__DeletePaneConfiguration, _tls__DeletePaneConfigurationResponse *tls__DeletePaneConfigurationResponse)
{	struct soap *soap = this;
	struct __tls__DeletePaneConfiguration soap_tmp___tls__DeletePaneConfiguration;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/display/wsdl/DeletePaneConfiguration";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tls__DeletePaneConfiguration.tls__DeletePaneConfiguration = tls__DeletePaneConfiguration;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tls__DeletePaneConfiguration(soap, &soap_tmp___tls__DeletePaneConfiguration);
	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)
		 || soap_put___tls__DeletePaneConfiguration(soap, &soap_tmp___tls__DeletePaneConfiguration, "-tls:DeletePaneConfiguration", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tls__DeletePaneConfiguration(soap, &soap_tmp___tls__DeletePaneConfiguration, "-tls:DeletePaneConfiguration", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!tls__DeletePaneConfigurationResponse)
		return soap_closesock(soap);
	tls__DeletePaneConfigurationResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	tls__DeletePaneConfigurationResponse->soap_get(soap, "tls:DeletePaneConfigurationResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int PullPointSubscriptionBindingProxy::Renew_(const char *endpoint, const char *soap_action, _wsnt__Renew *wsnt__Renew, _wsnt__RenewResponse *wsnt__RenewResponse)
{	struct soap *soap = this->soap;
	struct __tev__Renew_ soap_tmp___tev__Renew_;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://docs.oasis-open.org/wsn/bw-2/PausableSubscriptionManager/RenewRequest";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tev__Renew_.wsnt__Renew = wsnt__Renew;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tev__Renew_(soap, &soap_tmp___tev__Renew_);
	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)
		 || soap_put___tev__Renew_(soap, &soap_tmp___tev__Renew_, "-tev:Renew", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tev__Renew_(soap, &soap_tmp___tev__Renew_, "-tev:Renew", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!wsnt__RenewResponse)
		return soap_closesock(soap);
	wsnt__RenewResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	wsnt__RenewResponse->soap_get(soap, "wsnt:RenewResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int PullPointSubscriptionBindingProxy::GetCurrentMessage(const char *endpoint, const char *soap_action, _wsnt__GetCurrentMessage *wsnt__GetCurrentMessage, _wsnt__GetCurrentMessageResponse *wsnt__GetCurrentMessageResponse)
{	struct soap *soap = this->soap;
	struct __tev__GetCurrentMessage soap_tmp___tev__GetCurrentMessage;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/GetCurrentMessageRequest";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tev__GetCurrentMessage.wsnt__GetCurrentMessage = wsnt__GetCurrentMessage;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tev__GetCurrentMessage(soap, &soap_tmp___tev__GetCurrentMessage);
	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)
		 || soap_put___tev__GetCurrentMessage(soap, &soap_tmp___tev__GetCurrentMessage, "-tev:GetCurrentMessage", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tev__GetCurrentMessage(soap, &soap_tmp___tev__GetCurrentMessage, "-tev:GetCurrentMessage", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!wsnt__GetCurrentMessageResponse)
		return soap_closesock(soap);
	wsnt__GetCurrentMessageResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	wsnt__GetCurrentMessageResponse->soap_get(soap, "wsnt:GetCurrentMessageResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int PullPointSubscriptionBindingProxy::GetEventProperties(const char *endpoint, const char *soap_action, _tev__GetEventProperties *tev__GetEventProperties, _tev__GetEventPropertiesResponse *tev__GetEventPropertiesResponse)
{	struct soap *soap = this->soap;
	struct __tev__GetEventProperties soap_tmp___tev__GetEventProperties;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://www.onvif.org/ver10/events/wsdl/EventPortType/GetEventPropertiesRequest";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tev__GetEventProperties.tev__GetEventProperties = tev__GetEventProperties;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tev__GetEventProperties(soap, &soap_tmp___tev__GetEventProperties);
	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)
		 || soap_put___tev__GetEventProperties(soap, &soap_tmp___tev__GetEventProperties, "-tev:GetEventProperties", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tev__GetEventProperties(soap, &soap_tmp___tev__GetEventProperties, "-tev:GetEventProperties", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	if (!tev__GetEventPropertiesResponse)
		return soap_closesock(soap);
	tev__GetEventPropertiesResponse->soap_default(soap);
	if (soap_begin_recv(soap)
	 || soap_envelope_begin_in(soap)
	 || soap_recv_header(soap)
	 || soap_body_begin_in(soap))
		return soap_closesock(soap);
	tev__GetEventPropertiesResponse->soap_get(soap, "tev:GetEventPropertiesResponse", "");
	if (soap->error)
		return soap_recv_fault(soap, 0);
	if (soap_body_end_in(soap)
	 || soap_envelope_end_in(soap)
	 || soap_end_recv(soap))
		return soap_closesock(soap);
	return soap_closesock(soap);
}
int PullPointSubscriptionBindingProxy::send_Notify_(const char *endpoint, const char *soap_action, _wsnt__Notify *wsnt__Notify)
{	struct soap *soap = this->soap;
	struct __tev__Notify_ soap_tmp___tev__Notify_;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://docs.oasis-open.org/wsn/bw-2/PullPoint/Notify";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___tev__Notify_.wsnt__Notify = wsnt__Notify;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___tev__Notify_(soap, &soap_tmp___tev__Notify_);
	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)
		 || soap_put___tev__Notify_(soap, &soap_tmp___tev__Notify_, "-tev:Notify", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___tev__Notify_(soap, &soap_tmp___tev__Notify_, "-tev:Notify", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	return SOAP_OK;
}
Beispiel #13
0
int wsddProxy::send_ResolveMatches(const char *endpoint, const char *soap_action, struct wsdd__ResolveMatchesType *wsdd__ResolveMatches)
{	struct soap *soap = this;
	struct __wsdd__ResolveMatches soap_tmp___wsdd__ResolveMatches;
	if (endpoint)
		soap_endpoint = endpoint;
	if (soap_action == NULL)
		soap_action = "http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/ResolveMatches";
	soap_begin(soap);
	soap->encodingStyle = NULL;
	soap_tmp___wsdd__ResolveMatches.wsdd__ResolveMatches = wsdd__ResolveMatches;
	soap_set_version(soap, 2); /* SOAP1.2 */
	soap_serializeheader(soap);
	soap_serialize___wsdd__ResolveMatches(soap, &soap_tmp___wsdd__ResolveMatches);
	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)
		 || soap_put___wsdd__ResolveMatches(soap, &soap_tmp___wsdd__ResolveMatches, "-wsdd:ResolveMatches", NULL)
		 || soap_body_end_out(soap)
		 || soap_envelope_end_out(soap))
			 return soap->error;
	}
	if (soap_end_count(soap))
		return soap->error;
	if (soap_connect(soap, soap_url(soap, soap_endpoint, NULL), soap_action)
	 || soap_envelope_begin_out(soap)
	 || soap_putheader(soap)
	 || soap_body_begin_out(soap)
	 || soap_put___wsdd__ResolveMatches(soap, &soap_tmp___wsdd__ResolveMatches, "-wsdd:ResolveMatches", NULL)
	 || soap_body_end_out(soap)
	 || soap_envelope_end_out(soap)
	 || soap_end_send(soap))
		return soap_closesock(soap);
	return SOAP_OK;
}
Beispiel #14
0
int main()
{
  struct soap *ctx = soap_new1(SOAP_XML_INDENT);

  soap_set_namespaces(ctx, nosoap_nsmap);

  // a tree:
  Graph tree;
  // with 5 branches:
  for (int i = 0; i < 4; ++i)
  {
    Graph *branch = soap_new_Graph(ctx);
    tree.edges.push_back(branch);
    // each branch has a couple of leaves:
    for (int j = 0; j < i; ++j)
      branch->edges.push_back(soap_new_Graph(ctx));
  }

  std::cout << "**** XML TREE FROM C++ TREE ****" << std::endl;
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;

  std::cout << "**** XML TREE FROM C++ DIGRAPH ****" << std::endl;
  tree.edges[0] = tree.edges[1]; // first pair of edges point to shared node
  tree.edges[2] = tree.edges[3]; // second pair of edges point to shared node
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;

  std::cout << "**** XML ID-REF DIGRAPH FROM C++ DIGRAPH ****" << std::endl;
  soap_set_omode(ctx, SOAP_XML_GRAPH);
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;
  soap_clr_omode(ctx, SOAP_XML_GRAPH);

  std::cout << "**** XML ID-REF DIGRAPH FROM C++ CYCLIC GRAPH ****" << std::endl;
  tree.edges[0]->edges = tree.edges;   // create cycle
  soap_set_omode(ctx, SOAP_XML_GRAPH);
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;
  soap_clr_omode(ctx, SOAP_XML_GRAPH);

  std::cout << "**** XML TREE (PRUNED CYCLIC BRANCHES) FROM C++ CYCLIC GRAPH ****" << std::endl;
  soap_set_omode(ctx, SOAP_XML_TREE);
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;
  soap_clr_omode(ctx, SOAP_XML_TREE);

  std::cout << "**** SOAP 1.1 ENCODED GRAPH FROM C++ CYCLIC GRAPH ****" << std::endl;
  soap_set_namespaces(ctx, soap11_nsmap);
  soap_set_version(ctx, 1);        // enable SOAP 1.1
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;

  std::cout << "**** SOAP 1.2 ENCODED GRAPH FROM C++ CYCLIC GRAPH ****" << std::endl;
  soap_set_namespaces(ctx, soap12_nsmap);
  soap_set_version(ctx, 2);        // enable SOAP 1.2
  soap_write_Graph(ctx, &tree);
  std::cout << std::endl << std::endl;

  soap_destroy(ctx); // delete objects
  soap_end(ctx);     // free temp data
  soap_free(ctx);    // release context

  return 0;
}
Beispiel #15
0
char *soap_parser_encode(void *handle)
{
    SoapParser *parser = (SoapParser *)handle;

    struct soap *soap;
    int fd[2];
    char *xml = NULL;

    struct SOAP_ENV__Header *header = NULL;
    struct SOAP_ENV__Fault *fault = NULL;

    int tags_num = 0;
    char *src_tags[32];
    char *dst_tags[32];

    if (parser == NULL) {
        return NULL;
    }

    soap = parser->soap;

    header = _soap_header_create(parser->id,
                                 parser->hold_requests,
                                 parser->session_timeout,
                                 parser->supported_cwmp_versions,
                                 parser->use_cwmp_version);
    if (header == NULL) {
        LOGE(LOG_TAG, "create soap header failed");
        return NULL;
    }

    pipe(fd);

    soap_init(soap);
    soap->socket = -1;
    soap->sendfd = fd[1];

    if (parser->namespaces != NULL) {
        soap_set_namespaces(soap, parser->namespaces);
        if (parser->use_cwmp_version != 0) {
            _soap_namespaces_tags(parser->namespaces, parser->use_cwmp_version,
                                  &tags_num, src_tags, dst_tags);
        } else {
            _soap_namespaces_tags(parser->namespaces, parser->version,
                                  &tags_num, src_tags, dst_tags);
        }
    } else {
        soap_set_namespaces(soap, namespaces);
    }
    soap_set_version(soap, 1);

    soap->header = header;

    if (soap_begin_send(soap) != 0
        || soap_envelope_begin_out(soap) != 0
        || soap_putheader(soap) != 0
        || soap_body_begin_out(soap) != 0) {
        LOGE(LOG_TAG, "begin encode failed, error=%d", soap->error);
        _soap_header_destroy(header);
        return NULL;
    }

    switch (parser->type) {
        case  CWMP_MSG_FAULT: {
            fault = _soap_fault_create(parser->fault_code, parser->fault_string, parser->fault_body);
            if (fault == NULL) {
                LOGE(LOG_TAG, "create soap fault failed");
                _soap_header_destroy(header);
                return NULL;
            }
            soap_put_SOAP_ENV__Fault(soap, fault, NULL, NULL);
            break;
        }
        case CWMP_MSG_GET_RPCMETHODS_REQ:
            soap_put__cwmp__GetRPCMethods(soap,
                                          (struct _cwmp__GetRPCMethods *)parser->body,
                                          "cwmp:GetRPCMethods", NULL);
            break;
        case CWMP_MSG_SET_PARAM_VALUES_REQ:
            soap_put__cwmp__SetParameterValues(soap,
                                               (struct _cwmp__SetParameterValues *)parser->body,
                                               "cwmp:SetParameterValues", NULL);
            break;
        case CWMP_MSG_GET_PARAM_VALUES_REQ:
            soap_put__cwmp__GetParameterValues(soap,
                                               (struct _cwmp__GetParameterValues *)parser->body,
                                               "cwmp:GetParameterValues", NULL);
            break;
        case CWMP_MSG_GET_PARAM_NAMES_REQ:
            soap_put__cwmp__GetParameterNames(soap,
                                              (struct _cwmp__GetParameterNames *)parser->body,
                                              "cwmp:GetParameterNames", NULL);
            break;
        case CWMP_MSG_SET_PARAM_ATTRIBUTES_REQ:
            soap_put__cwmp__SetParameterAttributes(soap,
                                                   (struct _cwmp__SetParameterAttributes *)parser->body,
                                                   "cwmp:SetParameterAttributes", NULL);
            break;
        case CWMP_MSG_GET_PARAM_ATTRIBUTES_REQ:
            soap_put__cwmp__GetParameterAttributes(soap,
                                                   (struct _cwmp__GetParameterAttributes *)parser->body,
                                                   "cwmp:GetParameterAttributes", NULL);
            break;
        case CWMP_MSG_ADD_OBJECT_REQ:
            soap_put__cwmp__AddObject(soap,
                                      (struct _cwmp__AddObject *)parser->body,
                                      "cwmp:AddObject", NULL);
            break;
        case CWMP_MSG_DELETE_OBJECT_REQ:
            soap_put__cwmp__DeleteObject(soap,
                                         (struct _cwmp__DeleteObject *)parser->body,
                                         "cwmp:DeleteObject", NULL);
            break;
        case CWMP_MSG_REBOOT_REQ:
            soap_put__cwmp__Reboot(soap,
                                   (struct _cwmp__Reboot *)parser->body,
                                   "cwmp:Reboot", NULL);
            break;
        case CWMP_MSG_DOWNLOAD_REQ:
            soap_put__cwmp__Download(soap,
                                     (struct _cwmp__Download *)parser->body,
                                     "cwmp:Download", NULL);
            break;
        case CWMP_MSG_SCHEDULE_DOWNLOAD_REQ:
            soap_put__cwmp__ScheduleDownload(soap,
                                             (struct _cwmp__ScheduleDownload *)parser->body,
                                             "cwmp:ScheduleDownload", NULL);
            break;
        case CWMP_MSG_UPLOAD_REQ:
            soap_put__cwmp__Upload(soap,
                                   (struct _cwmp__Upload *)parser->body,
                                   "cwmp:Upload", NULL);
            break;
        case CWMP_MSG_FACTORY_RESET_REQ:
            soap_put__cwmp__FactoryReset(soap,
                                         (struct _cwmp__FactoryReset *)parser->body,
                                         "cwmp:FactoryReset", NULL);
            break;
        case CWMP_MSG_GET_QUEUED_TRANSFERS_REQ:
            soap_put__cwmp__GetQueuedTransfers(soap,
                                               (struct _cwmp__GetQueuedTransfers *)parser->body,
                                               "cwmp:GetQueuedTransfers", NULL);
            break;
        case CWMP_MSG_GET_ALL_QUEUED_TRANSFERS_REQ:
            soap_put__cwmp__GetAllQueuedTransfers(soap,
                                                  (struct _cwmp__GetAllQueuedTransfers *)parser->body,
                                                  "cwmp:GetAllQueuedTransfers", NULL);
            break;
        case CWMP_MSG_CANCEL_TRANSFERS_REQ:
            soap_put__cwmp__CancelTransfer(soap,
                                           (struct _cwmp__CancelTransfer *)parser->body,
                                           "cwmp:CancelTransfer", NULL);
            break;
        case CWMP_MSG_SCHEDULE_INFORM_REQ:
            soap_put__cwmp__ScheduleInform(soap,
                                           (struct _cwmp__ScheduleInform *)parser->body,
                                           "cwmp:ScheduleInform", NULL);
            break;
        case CWMP_MSG_CHANGE_DUSTATE_REQ:
            soap_put__cwmp__ChangeDUState(soap,
                                          (struct _cwmp__ChangeDUState *)parser->body,
                                          "cwmp:ChangeDUState", NULL);
            break;
        case CWMP_MSG_GET_RPCMETHODS_RSP:
            soap_put__cwmp__GetRPCMethodsResponse(soap,
                                                  (struct _cwmp__GetRPCMethodsResponse *)parser->body,
                                                  "cwmp:GetRPCMethodsResponse", NULL);
            break;
        case CWMP_MSG_INFROM_RSP:
            soap_put__cwmp__InformResponse(soap,
                                           (struct _cwmp__InformResponse *)parser->body,
                                           "cwmp:InformResponse", NULL);
            break;
        case CWMP_MSG_TRANSFER_COMPLETE_RSP:
            soap_put__cwmp__TransferCompleteResponse(soap,
                                                     (struct _cwmp__TransferCompleteResponse *)parser->body,
                                                     "cwmp:TransferCompleteResponse", NULL);
            break;
        case CWMP_MSG_AUTONOMOUS_TRANSFER_COMPLETE_RSP:
            soap_put__cwmp__AutonomousTransferCompleteResponse(soap,
                                                               (struct _cwmp__AutonomousTransferCompleteResponse *)parser->body,
                                                               "cwmp:AutonomousTransferCompleteResponse", NULL); break;
        case CWMP_MSG_DUSTATE_CHANGE_COMPLETE_RSP:
            soap_put__cwmp__DUStateChangeCompleteResponse(soap,
                                                          (struct _cwmp__DUStateChangeCompleteResponse *)parser->body,
                                                          "cwmp:DUStateChangeCompleteResponse", NULL);
            break;
        case CWMP_MSG_AUTONOMOUS_DUSTATE_CHANGE_COMPLETE_RSP:
            soap_put__cwmp__AutonomousDUStateChangeCompleteResponse(soap,
                                                                    (struct _cwmp__AutonomousDUStateChangeCompleteResponse *)parser->body,
                                                                    "cwmp:AutonomousDUStateChangeCompleteResponse", NULL);
            break;
        case CWMP_MSG_REQUEST_DOWNLOAD_RSP:
            soap_put__cwmp__RequestDownloadResponse(soap,
                                                    (struct _cwmp__RequestDownloadResponse *)parser->body,
                                                    "cwmp:RequestDownloadResponse", NULL);
            break;
        default :
            LOGE(LOG_TAG, "unknow type, %s(%d)", CWMP_MSG_TYPE_STRING(parser->type), parser->type);
            break;
    }

    if (soap_body_end_out(soap) != 0
        || soap_envelope_end_out(soap) != 0
        || soap_end_send(soap) != 0) {
        LOGE(LOG_TAG, "end encode failed, error=%d", soap->error);
        _soap_header_destroy(header);
        return NULL;
    }

    close(fd[1]);
    xml = _slurpfd(fd[0]);
    if (tags_num > 0) {
        int i;
        for (i = 0; i < tags_num; i++) {
            char s[128];
            char d[128];
            char *_xml = xml;
            if (src_tags[i] == NULL
                || dst_tags[i] == NULL
                || strlen(src_tags[i]) <= 0
                || strlen(dst_tags[i]) <= 0) {
                continue;
            }
            LOGV(LOG_TAG, "replace \"%s\" to \"%s\"", src_tags[i], dst_tags[i]);
            snprintf(s, 128, "%s:", src_tags[i]);
            snprintf(d, 128, "%s:", dst_tags[i]);
            xml = _string_replace(_xml, s, d);
            if (xml == NULL) {
                LOGE(LOG_TAG, "replace tag failed.");
                return _xml;
            }
            free(_xml);
        }
    }

    _soap_header_destroy(header);
    _soap_fault_destroy(fault);
    return xml;
}