16 #ifndef HAZELCAST_MULTI_MAP    17 #define HAZELCAST_MULTI_MAP    22 #include "hazelcast/client/proxy/MultiMapImpl.h"    23 #include "hazelcast/client/impl/EntryEventHandler.h"    24 #include "hazelcast/client/protocol/codec/MultiMapAddEntryListenerCodec.h"    25 #include "hazelcast/client/protocol/codec/MultiMapAddEntryListenerToKeyCodec.h"    30             template <
typename K, 
typename V>
    31             class RawPointerMultiMap;
    39         template<
typename K, 
typename V>
    41             friend class impl::HazelcastClientInstanceImpl;
    54             bool put(
const K &key, 
const V &value) {
    55                 return proxy::MultiMapImpl::put(toData(key), toData(value));
    64             std::vector<V> 
get(
const K &key) {
    65                 return toObjectCollection<V>(proxy::MultiMapImpl::getData(toData(key)));
    75             bool remove(
const K &key, 
const V &value) {
    76                 return proxy::MultiMapImpl::remove(toData(key), toData(value));
    86             std::vector<V> 
remove(
const K &key) {
    87                 return toObjectCollection<V>(proxy::MultiMapImpl::removeData(toData(key)));
    97                 return toObjectCollection<K>(proxy::MultiMapImpl::keySetData());
   107                 return toObjectCollection<V>(proxy::MultiMapImpl::valuesData());
   117                 return toObjectEntrySet<K, V>(proxy::MultiMapImpl::entrySetData());
   127                 return proxy::MultiMapImpl::containsKey(toData(key));
   137                 return proxy::MultiMapImpl::containsValue(toData(value));
   148                 return proxy::MultiMapImpl::containsEntry(toData(key), toData(value));
   157                 return proxy::MultiMapImpl::size();
   164                 proxy::MultiMapImpl::clear();
   175                 return proxy::MultiMapImpl::valueCount(toData(key));
   193                 spi::ClientClusterService &clusterService = context->getClientClusterService();
   194                 serialization::pimpl::SerializationService &ss = context->getSerializationService();
   195                 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler> *entryEventHandler =
   196                         new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler>(
   197                                 getName(), clusterService, ss, listener, includeValue);
   198                 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, includeValue);
   218                 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerToKeyCodec::AbstractEventHandler> *entryEventHandler =
   219                         new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerToKeyCodec::AbstractEventHandler>(
   220                                 getName(), context->getClientClusterService(), context->getSerializationService(), listener,
   222                 serialization::pimpl::Data keyData = toData(key);
   223                 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, keyData, includeValue);
   235                 return proxy::MultiMapImpl::removeEntryListener(registrationId);
   254                 proxy::MultiMapImpl::lock(toData(key));
   273             void lock(
const K &key, 
long leaseTimeInMillis) {
   274                 proxy::MultiMapImpl::lock(toData(key), leaseTimeInMillis);
   285                 return proxy::MultiMapImpl::isLocked(toData(key));
   298                 return proxy::MultiMapImpl::tryLock(toData(key));
   317             bool tryLock(
const K &key, 
long timeoutInMillis) {
   318                 return proxy::MultiMapImpl::tryLock(toData(key), timeoutInMillis);
   329                 proxy::MultiMapImpl::unlock(toData(key));
   339                 proxy::MultiMapImpl::forceUnlock(toData(key));
   343             MultiMap(
const std::string &instanceName, spi::ClientContext *context)
   344                     : proxy::MultiMapImpl(instanceName, context) {
 std::vector< std::pair< K, V > > entrySet()
Returns the set of key-value pairs in the multimap. 
Definition: MultiMap.h:116
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:273
void lock(const K &key)
Acquires the lock for the specified key. 
Definition: MultiMap.h:253
bool tryLock(const K &key, long timeoutInMillis)
Tries to acquire the lock for the specified key. 
Definition: MultiMap.h:317
bool isLocked(const K &key)
Checks the lock for the specified key. 
Definition: MultiMap.h:284
int size()
Returns the number of key-value pairs in the multimap. 
Definition: MultiMap.h:156
std::string addEntryListener(EntryListener< K, V > &listener, bool includeValue)
Adds an entry listener for this multimap. 
Definition: MultiMap.h:192
std::vector< K > keySet()
Returns the set of keys in the multimap. 
Definition: MultiMap.h:96
int valueCount(const K &key)
Returns number of values matching to given key in the multimap. 
Definition: MultiMap.h:174
A specialized distributed map client whose keys can be associated with multiple values. 
Definition: MultiMap.h:40
bool tryLock(const K &key)
Tries to acquire the lock for the specified key. 
Definition: MultiMap.h:297
bool containsValue(const V &value)
Returns whether the multimap contains an entry with the value. 
Definition: MultiMap.h:136
void clear()
Clears the multimap. 
Definition: MultiMap.h:163
std::string addEntryListener(EntryListener< K, V > &listener, const K &key, bool includeValue)
Adds the specified entry listener for the specified key. 
Definition: MultiMap.h:217
bool put(const K &key, const V &value)
Stores a key-value pair in the multimap. 
Definition: MultiMap.h:54
bool containsKey(const K &key)
Returns whether the multimap contains an entry with the key. 
Definition: MultiMap.h:126
std::vector< V > values()
Returns the multimap of values in the multimap. 
Definition: MultiMap.h:106
void forceUnlock(const K &key)
Releases the lock for the specified key regardless of the lock owner. 
Definition: MultiMap.h:338
void unlock(const K &key)
Releases the lock for the specified key. 
Definition: MultiMap.h:328
bool removeEntryListener(const std::string ®istrationId)
Removes the specified entry listener Returns silently if there is no such listener added before...
Definition: MultiMap.h:234
A specialized distributed map client whose keys can be associated with multiple values. 
Definition: RawPointerMultiMap.h:32
Definition: MapEntryView.h:32
bool containsEntry(const K &key, const V &value)
Returns whether the multimap contains the given key-value pair. 
Definition: MultiMap.h:147