Skip to content

3.9 - Polymorphic And Mixed Type Support

Compare
Choose a tag to compare
@ihsandemir ihsandemir released this 05 Dec 15:11
· 497 commits to master since this release

This document includes the new features, enhancements, and fixed issues for Hazelcast C++ Client 3.9 release.

New features

There are no new features for this release.

Enhancements

  • Polymorphic Object Support: This release adds the polymorphic object support for all serialization types; IdentifiedDataSerializable, Portable and custom types. You can now use the base type when you get a data structure, for example client.getMap<BaseKey, BaseValue>("mymap"), and put and get derived polymorphic objects to the same data structure.

  • Mixed Type Unrelated Object Support: This release adds the support for all serialization types for completely unrelated object types to be used at the Hazelcast data structures. You can do this by using the mixed type adopted HazelcastClient. You can adopt the client in this way:

    ClientConfig config;
    HazelcastClient client(config);
    mixedtype::HazelcastClient &hazelcastClient = client.toMixedType();

The mixedtype::HazelcastClient interface is designed to provide you the data structures which allows you to work with any object types in a mixed manner. For example, the interface allows you to provide the key and value type differently for each map.put call. An example usage is shown below:

    mixedtype::IMap map = hazelcastClient.getMap("MyMap");

    map.put<int, int>(3, 5);
    map.put<string, std::string>("string key1", "MyStringValue");
    map.put<int, MyCustomObject>("string key1", myCustomInstance);
    TypedData result = map.get<int>(3);

As you can see in the above code snippet, we are putting int, string and MyCustomObject to the same map. Both the key and value can be of different type for each map.put call.

Fixes

Some of the major bug fixes for this release are listed below. You can find the full list of closed issues and closed PRs at the repo with milestone 3.9

  • Build lib in a context of bigger project. [#332]
  • Unable to specify include and lib dirs for OpenSSL on Windows and on Linux. [#330]

Known Issues

There are no known issues for this release.