BewareMyPower opened a new pull request, #257:
URL: https://github.com/apache/pulsar-client-cpp/pull/257

   ### Motivation
   
   Currently there is no public API to get the SchemaInfo from the broker. 
However, when a consumer tries to decode a message of Avro schema, the writer 
schema that was stored in the broker is required. The C++ client is not 
responsible to decode the message, but the extended library like the Python 
client needs the ability to get the writer schema from the broker. There is a 
workaround that we can send a REST request to query the schema, but it requires 
the admin permission.
   
   ### Modification
   
   - Add the `Client::getSchemaInfoAsync` method to get the schema info 
asynchronously. When the schema of the given version does not exist, the 
`SchemaInfo` whose type is `NONE` will be returned.
   - Add the `Message::getLongSchemaVersion` method to get the schema version 
of a message. The existing `getSchemaVersion` method is hard to use because it 
returns a byte array, which users need to know how to decode.
   - Provide `fromBigEndianBytes` and `toBigEndianBytes` functions to perform 
conversion between a byte array and the long value of the schema version. Add 
`Int64SerDes` to test them.
   - Fix the `LookupServiceTest` that initializes `client_` only once (even 
with the `GetParam()` method) so the HTTP URL was never tested.
   - Add `testGetSchemaByVersion` to test `getSchemaInfoAsync`.
   
   ### Documentation
   
   <!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. -->
   
   - [ ] `doc-required` 
   (Your PR needs to update docs and you will update later)
   
   - [ ] `doc-not-needed` 
   (Please explain why)
   
   - [x] `doc` 
   (Your PR contains doc changes)
   
   - [ ] `doc-complete`
   (Docs have been already added)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to