16 #ifndef HAZELCAST_MULTI_MAP
17 #define HAZELCAST_MULTI_MAP
19 #include "hazelcast/client/proxy/MultiMapImpl.h"
20 #include "hazelcast/client/impl/EntryEventHandler.h"
21 #include "hazelcast/client/protocol/codec/MultiMapAddEntryListenerCodec.h"
36 template<
typename K,
typename V>
50 bool put(
const K &key,
const V &value) {
51 return proxy::MultiMapImpl::put(toData(key), toData(value));
60 std::vector<V>
get(
const K &key) {
61 return toObjectCollection<V>(proxy::MultiMapImpl::get(toData(key)));
71 bool remove(
const K &key,
const V &value) {
72 return proxy::MultiMapImpl::remove(toData(key), toData(value));
82 std::vector<V>
remove(
const K &key) {
83 return toObjectCollection<V>(proxy::MultiMapImpl::remove(toData(key)));
93 return toObjectCollection<K>(proxy::MultiMapImpl::keySet());
103 return toObjectCollection<V>(proxy::MultiMapImpl::values());
113 return toObjectEntrySet<K, V>(proxy::MultiMapImpl::entrySet());
123 return proxy::MultiMapImpl::containsKey(toData(key));
133 return proxy::MultiMapImpl::containsValue(toData(value));
144 return proxy::MultiMapImpl::containsEntry(toData(key), toData(value));
153 return proxy::MultiMapImpl::size();
160 proxy::MultiMapImpl::clear();
171 return proxy::MultiMapImpl::valueCount(toData(key));
189 spi::ClusterService &clusterService = context->getClusterService();
190 serialization::pimpl::SerializationService &ss = context->getSerializationService();
191 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler> *entryEventHandler =
192 new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler>(
193 getName(), clusterService, ss, listener, includeValue);
194 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, includeValue);
214 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler> *entryEventHandler =
215 new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler>(
216 getName(), context->getClusterService(), context->getSerializationService(), listener,
218 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, toData(key), includeValue);
230 return proxy::MultiMapImpl::removeEntryListener(registrationId);
249 proxy::MultiMapImpl::lock(toData(key));
268 void lock(
const K &key,
long leaseTimeInMillis) {
269 proxy::MultiMapImpl::lock(toData(key), leaseTimeInMillis);
280 return proxy::MultiMapImpl::isLocked(toData(key));
293 return proxy::MultiMapImpl::tryLock(toData(key));
312 bool tryLock(
const K &key,
long timeoutInMillis) {
313 return proxy::MultiMapImpl::tryLock(toData(key), timeoutInMillis);
324 proxy::MultiMapImpl::unlock(toData(key));
334 proxy::MultiMapImpl::forceUnlock(toData(key));
338 MultiMap(
const std::string &instanceName, spi::ClientContext *context)
339 : proxy::MultiMapImpl(instanceName, context) {
std::vector< std::pair< K, V > > entrySet()
Returns the set of key-value pairs in the multimap.
Definition: MultiMap.h:112
Map Entry listener to get notified when a map entry is added, removed, updated or evicted...
Definition: EntryListener.h:45
void lock(const K &key, long leaseTimeInMillis)
Acquires the lock for the specified key for the specified lease time.
Definition: MultiMap.h:268
void lock(const K &key)
Acquires the lock for the specified key.
Definition: MultiMap.h:248
bool tryLock(const K &key, long timeoutInMillis)
Tries to acquire the lock for the specified key.
Definition: MultiMap.h:312
bool isLocked(const K &key)
Checks the lock for the specified key.
Definition: MultiMap.h:279
int size()
Returns the number of key-value pairs in the multimap.
Definition: MultiMap.h:152
std::string addEntryListener(EntryListener< K, V > &listener, bool includeValue)
Adds an entry listener for this multimap.
Definition: MultiMap.h:188
std::vector< K > keySet()
Returns the set of keys in the multimap.
Definition: MultiMap.h:92
int valueCount(const K &key)
Returns number of values matching to given key in the multimap.
Definition: MultiMap.h:170
A specialized distributed map client whose keys can be associated with multiple values.
Definition: MultiMap.h:37
bool tryLock(const K &key)
Tries to acquire the lock for the specified key.
Definition: MultiMap.h:292
bool containsValue(const V &value)
Returns whether the multimap contains an entry with the value.
Definition: MultiMap.h:132
void clear()
Clears the multimap.
Definition: MultiMap.h:159
std::string addEntryListener(EntryListener< K, V > &listener, const K &key, bool includeValue)
Adds the specified entry listener for the specified key.
Definition: MultiMap.h:213
bool put(const K &key, const V &value)
Stores a key-value pair in the multimap.
Definition: MultiMap.h:50
bool containsKey(const K &key)
Returns whether the multimap contains an entry with the key.
Definition: MultiMap.h:122
std::vector< V > values()
Returns the multimap of values in the multimap.
Definition: MultiMap.h:102
void forceUnlock(const K &key)
Releases the lock for the specified key regardless of the lock owner.
Definition: MultiMap.h:333
void unlock(const K &key)
Releases the lock for the specified key.
Definition: MultiMap.h:323
bool removeEntryListener(const std::string ®istrationId)
Removes the specified entry listener Returns silently if there is no such listener added before...
Definition: MultiMap.h:229
bool containsEntry(const K &key, const V &value)
Returns whether the multimap contains the given key-value pair.
Definition: MultiMap.h:143
Hazelcast Client enables you to do all Hazelcast operations without being a member of the cluster...
Definition: HazelcastClient.h:412