我使用C++应用程序在两个PHP服务器之间同步数据。
我的第一台服务器是本地服务器,我的C++应用程序调用该服务器上的 Web 服务来获取要同步的对象。然后,我的C++应用程序使用另一个 Web 服务将其发送到我的云 PHP 服务器上。
所以我的对象是一个在我的两个 php 服务器上定义完全相同的 soap 对象。
但是,对于我的C++应用程序,这两个对象并不相同(或者至少具有不同的命名空间(,因此 Y 无法编译以下行:
soapErrorCode = cloudWebService.action(myLocalObject);
//C++ is waiting for an object of type myCloudObject, even if these two object have the same attributes
我的 soap 对象和 Web 服务定义是在 gSoap 的帮助下在我的C++中定义的。
我看到了不同的解决方案,但不确定哪个是最好的:
- 有没有办法告诉C++myLocalObject和myCloudObject是相同的?注意:我不想手动修改 gsoap 生成的代码(工作量太大!
- 有没有办法告诉gsoapmyLocalObject和myCloudObject是相同的?
- 我是否有义务创建将myLocalObject转换为myCloudObject的fonction?
谢谢!
在我看来,两种可能的变体是:
- 从
myLocalObject
到myCloudObject
和从myCloudObject
到myLocalObject
的写入转换器功能 - 您可以创建用于
myLocalObject
和myCloudObject
的基类,并完成其指针。