Перед PDX я использовал для создания языка нейтрального представления моего домена и одновременно генерировать Java, C++ и классы .Net с использованием DataSerializable. Однако PDX делает это ненужным по большей части. Ниже приведен пример конфигурации примера.
Если вы столкнулись с типами, которые вы используете, что Java не поддерживает, вы все равно не придется прибегать к генерации сериализаторов, но вы можете сосредоточиться на сериализации, что один тип (см 564 http://gemfire.docs.pivotal.io/pdf/pivotal-gemfire-ug.pdf
генерации Рассмотрим ваши собственные сериализаторы, когда у вас есть безумная потребность в скорости, так как автоматический сериализатор может вызвать перетаскивание. Обычно это не нужно, но если вы это сделаете, вот инструкции: http://data-docs-samples.cfapps.io/docs-gemfire/latest/javadocs/japi/com/gemstone/gemfire/DataSerializer.html
Вот конфигурация для использования pdx auto сериализатор:
<!-- Cache configuration configuring auto serialization behavior -->
<cache>
<pdx>
<pdx-serializer>
<class-name>com.gemstone.gemfire.pdx.ReflectionBasedAutoSerializer
</class-name>
<parameter name="classes">
<string>com.company.domain.DomainObject</string>
</parameter>
</pdx-serializer>
</pdx>
...
</cache>
Если я ответил на ваш вопрос, просьба указать «Ответ». Благодарю.
Если у меня есть класс MyClass {int myID; String myName} в Java, у меня не может быть MyClass {String myName; int myID} в C++. Оба они должны совпадать даже с сериализацией Auto PDX. Какое языковое нейтральное представление можно использовать для определения классов Java и C++? Я больше заинтересован в том, чтобы структуры классов были правильными для обоих языков. Скорость сериализации для меня не беспокоит. – Yash
Учитывая это, рассмотрите возможность использования своего Java POJO в качестве своего серверного представления, а затем переопределите ваш Employee PDXSerializer 'toData' и' fromData' на собственном клиенте C++ для обработки вашего различного порядка и/или типов (см. Http: // gemfire .docs.pivotal.io/Docs-gemfire/gemfire_nativeclient/CPP-кэширование-апи/using_pdxserializer.html). Если у вас должен быть нейтральный язык, сохраните все как строку и переопределите заказы/типы в ваших сериализаторах. Чтобы упростить и автоматизировать, я использовал генераторы кода, чтобы генерировать сериализаторы из метаданных объектов и сделать их частью CI. –
Можете ли вы предложить генератор кода? Какой из них вы использовали? – Yash