Skip to content

@ihsandemir ihsandemir released this Apr 29, 2016 · 498 commits to master since this release

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

New Features

This release introduces the following new features:

  • Raw pointer capability: This feature introduces the new raw pointer adapter classes such as RawPointerMap which allows you to obtain raw pointer for the returned objects. Previously it was not possible to release the returned pointer object due to limitations of boost::shared_ptr and hence it was causing an extra object copy for the user. The new API also uses late de-serialization for multiple values returning API. For each container you can use the adapter classes, whose names start with RawPointer, to access the raw pointers of the created objects. The adapter classes are found in hazelcast::client::adaptor namespace and listed below:

    -RawPointerList
    -RawPointerQueue
    -RawPointerTransactionalMultiMap
    -RawPointerMap
    -RawPointerSet
    -RawPointerTransactionalQueue
    -RawPointerMultiMap
    -RawPointerTransactionalMap

    These are adapter classes and they do not create new structures. You just provide the legacy containers as parameters and then you can work with these raw capability containers freely.

    The following are also the late serializing structures for multiple entry returning API:
    -DataArray
    -EntryArray
    See http://docs.hazelcast.org/docs/latest-dev/manual/html-single/index.html#raw-pointer-api, https://github.com/hazelcast/hazelcast-cpp-client/tree/master/examples/adaptor, and #75 for details.

  • Support custom serialization with no user object modification: The previous API required some modification to user objects when you want to use custom serializer. We removed this requirement. Hence, the user can use the custom serializer with no user object code modification. See http://docs.hazelcast.org/docs/latest-dev/manual/html-single/index.html#serialization-support, https://github.com/hazelcast/hazelcast-cpp-client/tree/master/examples/serialization/custom, and #37 for details.

  • Version Info on C++ Client: The client STARTING log now contains the last Git commit date and commit ID for the release. Example format is:
    Apr 21, 2016 01:42:16 PM INFO: [HazelcastCppClient3.6.2] [dev] [4298317824] (20160406:0ef9654) LifecycleService::LifecycleEvent STARTING 3.6.2 is the version. 20160406 is the release date 0ef9654 is the GitHub commit ID.

    See #92 and #90 for details.

  • New built-in predicates for queries: Previously only the SQL query predicate and user-built custom predicates were supported by the client. This release adds new built-in predicates for making queries, listed below.

    This release also adds entry listeners with predicates support for C++ client API. By this way, only the events for the selected subset of entries matching the query criteria are received by your listener. Hence, the new listener API is:
    std::string addEntryListener(EntryListener<K, V> &listener, const query::Predicate &predicate, bool includeValue);

    This release introduces a rich set of built-in predicates as supported by the Java client. You can create your own predicates by implementing Predicate interfaces both at the C++ client side and server side. Built-in predicates are listed below:

    • AndPredicate
    • EqualPredicate
    • ILikePredicate
    • LikePredicate
    • OrPredicate
    • TruePredicate
    • BetweenPredicate
    • FalsePredicate
    • InPredicate
    • NotEqualPredicate
    • PagingPredicate
    • RegexPredicate
    • GreaterLessPredicate
    • InstanceOfPredicate
    • NotPredicate
    • SqlPredicate

    See http://docs.hazelcast.org/docs/latest-dev/manual/html-single/index.html#query-api, https://github.com/hazelcast/hazelcast-cpp-client/blob/master/examples/distributed-map/query/queryExample.cpp, #89 for details.

Enhancements

  • The UIT tests are speeded up.
  • Added load and stability test. See #65

Fixes

  • Some fixes for tests. See #86, #26
Assets 3
You can’t perform that action at this time.