Одинаковые объекты, но разные типы - PullRequest
0 голосов
/ 16 мая 2018

Я использую приложение C ++ для синхронизации данных между двумя PHP-серверами.

Мой первый сервер локальный, мое приложение C ++ вызывает веб-сервис на этом сервере, чтобы получить объект для синхронизации. Затем мое приложение C ++ использует другой веб-сервис для отправки его на мой облачный PHP-сервер.

Таким образом, мой Объект - это мыльный объект, определенный строго одинаково на двух моих php-серверах.

Однако для моих приложений на C ++ эти два объекта не совпадают (или, по крайней мере, с другим пространством имен), поэтому Y не может скомпилировать следующую строку:

soapErrorCode = cloudWebService.action(myLocalObject);
//C++ is waiting for an object of type myCloudObject, even if these two object have the same attributes

Мои объекты мыла и определение Webservice определены в моем C ++ с помощью gSoap.

Я вижу другое решение, но не уверен, какое из них лучше:

  1. Есть ли способ сообщить C ++, что myLocalObject и myCloudObject одинаковы? Примечание: я не хочу вручную изменять код, сгенерированный gsoap (слишком много работы!).
  2. Есть ли способ сообщить gsoap, что myLocalObject и myCloudObject одинаковы?
  3. Обязан ли я создать функцию для преобразования myLocalObject в myCloudObject?

Спасибо!

1 Ответ

0 голосов
/ 16 мая 2018

На мой взгляд, два возможных варианта:

  1. Функция преобразования записи от myLocalObject до myCloudObject и от myCloudObject до myLocalObject
  2. Вы можете создать базовый класс для myLocalObject и myCloudObject и работать с его указателем.
...