相同的对象,但不同的类型

时间:2018-05-16 07:53:17

标签: c++ web-services gsoap

我使用C ++应用程序在两台PHP服务器之间同步数据。

我的第一台服务器是本地服务器,我的C ++应用程序调用该服务器上的Web服务以获取同步对象。然后,我的C ++应用程序使用另一个Web服务将其发送到我的Cloud 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对象和Webservice定义是在我的C ++中借助gSoap定义的。

我看到了不同的解决方案,但不确定哪个是最好的:

  1. 有没有办法告诉C ++ myLocalObject和myCloudObject是一样的?注意:我不想手动修改gsoap生成的代码(太多工作!)。
  2. 有没有办法告诉gsoap myLocalObject和myCloudObject是一样的?
  3. 我是否有义务创建fonction以将myLocalObject转换为myCloudObject?
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

在我看来,有两种可能的变体:

  1. 将转换器功能从myLocalObject写入myCloudObject,从myCloudObject写入myLocalObject
  2. 您可以为myLocalObjectmyCloudObject创建基类并完成其指针。