2015-06-08 3 views
0

В настоящее время я конвертирую код примера в gsoap_distribution/samples/magic в код клиента C++, используя код soapProxy .cpp и код сервера C++, используя soapService.cpp, которые генерируются "soapcpp2 -i magic.h".Как получить ссылку на мыло struct, унаследованное в C++ Proxy/Service class

Я обнаружил проблемы при преобразовании некоторых функций, для которых требуется ссылка на мыло: soap_new_matrix (& soap, -1); soap_print_fault_location (& soap, stderr);

В моем понимании, сервисные/прокси-классы (генерируемые опциями «soapcpp2 -i») наследуют структурное мыло. Есть ли способ получить ссылку на структурное мыло из объекта класса C++ Proxy/Service?

Спасибо за ваше чтение.

+0

Можете ли вы разместить код? –

+0

Дорогой Лоуренс Айелло, Спасибо за ваш интерес. Я новичок в stackoverflow. Не могли бы вы рассказать мне, как отключить исходные коды в stackoverflow? – Hongsoog

+0

Я нашел альтернативное решение. Опция soapcpp2 -j генерирует класс proxy/service с переменной-членом объекта soap-объекта вместо наследования. Для получения информации, -i создать прокси-серверы и объекты службы C++, унаследованные от мыльной структуры -j создать прокси-серверы и объекты службы C++, совместно использующие мыльную структуру – Hongsoog

ответ

0

Поскольку классы прокси и сервисы унаследованы от класса контекста soap с опцией -i для soapcpp2, вы можете просто передать указатель на свой прокси-сервер или объекты обслуживания на эти функции. Например:

#include "soapmagicProxy.h" // generated by soapcpp2 -i magic.h 
#include "magic.nsmap"  // XML namespace mapping table 

magicProxy service("http://www.cs.fsu.edu/~engelen/magicserver.cgi"); 
matrix *matrix = soap_new_matrix(&service); 
service.magic(7, matrix); 
... 
service.destroy();