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" 
   31             template <
typename K, 
typename V>
 
   32             class RawPointerMultiMap;
 
   40         template<
typename K, 
typename V>
 
   55             bool put(
const K &key, 
const V &value) {
 
   56                 return proxy::MultiMapImpl::put(toData(key), toData(value));
 
   65             std::vector<V> 
get(
const K &key) {
 
   66                 return toObjectCollection<V>(proxy::MultiMapImpl::getData(toData(key)));
 
   76             bool remove(
const K &key, 
const V &value) {
 
   77                 return proxy::MultiMapImpl::remove(toData(key), toData(value));
 
   87             std::vector<V> 
remove(
const K &key) {
 
   88                 return toObjectCollection<V>(proxy::MultiMapImpl::removeData(toData(key)));
 
   98                 return toObjectCollection<K>(proxy::MultiMapImpl::keySetData());
 
  108                 return toObjectCollection<V>(proxy::MultiMapImpl::valuesData());
 
  118                 return toObjectEntrySet<K, V>(proxy::MultiMapImpl::entrySetData());
 
  128                 return proxy::MultiMapImpl::containsKey(toData(key));
 
  138                 return proxy::MultiMapImpl::containsValue(toData(value));
 
  149                 return proxy::MultiMapImpl::containsEntry(toData(key), toData(value));
 
  158                 return proxy::MultiMapImpl::size();
 
  165                 proxy::MultiMapImpl::clear();
 
  176                 return proxy::MultiMapImpl::valueCount(toData(key));
 
  194                 spi::ClusterService &clusterService = context->getClusterService();
 
  195                 serialization::pimpl::SerializationService &ss = context->getSerializationService();
 
  196                 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler> *entryEventHandler =
 
  197                         new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler>(
 
  198                                 getName(), clusterService, ss, listener, includeValue);
 
  199                 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, includeValue);
 
  219                 impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler> *entryEventHandler =
 
  220                         new impl::EntryEventHandler<K, V, protocol::codec::MultiMapAddEntryListenerCodec::AbstractEventHandler>(
 
  221                                 getName(), context->getClusterService(), context->getSerializationService(), listener,
 
  223                 return proxy::MultiMapImpl::addEntryListener(entryEventHandler, toData(key), 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:117
 
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:157
 
std::string addEntryListener(EntryListener< K, V > &listener, bool includeValue)
Adds an entry listener for this multimap. 
Definition: MultiMap.h:193
 
std::vector< K > keySet()
Returns the set of keys in the multimap. 
Definition: MultiMap.h:97
 
int valueCount(const K &key)
Returns number of values matching to given key in the multimap. 
Definition: MultiMap.h:175
 
A specialized distributed map client whose keys can be associated with multiple values. 
Definition: MultiMap.h:41
 
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:137
 
void clear()
Clears the multimap. 
Definition: MultiMap.h:164
 
std::string addEntryListener(EntryListener< K, V > &listener, const K &key, bool includeValue)
Adds the specified entry listener for the specified key. 
Definition: MultiMap.h:218
 
bool put(const K &key, const V &value)
Stores a key-value pair in the multimap. 
Definition: MultiMap.h:55
 
bool containsKey(const K &key)
Returns whether the multimap contains an entry with the key. 
Definition: MultiMap.h:127
 
std::vector< V > values()
Returns the multimap of values in the multimap. 
Definition: MultiMap.h:107
 
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
 
bool containsEntry(const K &key, const V &value)
Returns whether the multimap contains the given key-value pair. 
Definition: MultiMap.h:148
 
Hazelcast Client enables you to do all Hazelcast operations without being a member of the cluster...
Definition: HazelcastClient.h:459