Oracle Coherence for C++ API
Release 3.6.0.0
E15728-01

- Main Page
- Namespaces
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# InvocableMap::Entry Class Reference

`#include <coherence/util/InvocableMap.hpp>`

List of all members.

## Detailed Description

An InvocableMap::Entry contains additional information and exposes additional operations that the basic Map::Entry does not.

It allows non-existent entries to be represented, thus allowing their optional creation. It allows existent entries to be removed from the Map. It supports a number of optimizations that can ultimately be mapped through to indexes and other data structures of the underlying Map.

## Public Types
typedef spec::Handle | Handle
| Entry Handle definition.
typedef spec::View | View
| Entry View definition.
typedef spec::Holder | Holder
| Entry Holder definition.
## Public Member Functions
virtual Object::Holder | setValue (Object::Holder ohValue, bool fSynthetic)=0
| Store the value corresponding to this entry.
virtual void | update (ValueUpdater::View vUpdater, Object::Holder ohValue)=0
| Update the Entry's value.
virtual bool | isPresent () const =0
| Determine if this Entry exists in the Map.
virtual void | remove (bool fSynthetic)=0
| Remove this Entry from the Map if it is present in the Map.
virtual Object::Holder | extract (ValueExtractor::View vExtractor) const =0

## Member Function Documentation

virtual Object::Holder setValue | ( | Object::Holder | ohValue,
|  | bool | fSynthetic |
| ) |  |  | `[pure virtual]`

Store the value corresponding to this entry.

If the entry does not exist, then the entry will be created by invoking this method, even with a NULL value (assuming the Map supports NULL values).

Unlike the other form of setValue, this form does not return the previous value, and as a result may be significantly less expensive (in terms of cost of execution) for certain Map implementations.

Parameters:

  | ohValue | the new value for this Entry
  | fSynthetic | pass true only if the insertion into or modification of the Map should be treated as a synthetic event

Returns:
  the prior value

virtual void update | ( | ValueUpdater::View | vUpdater,
|  | Object::Holder | ohValue |
| ) |  |  | `[pure virtual]`

Update the Entry's value.

Calling this method is semantically equivalent to:

       Object::Handle hTarget = cast<Object::Handle>(
               hEntry->getValue());
       vUpdater->update(hTarget, ohValue);
       hEntry->setValue(hTarget, false);

The benefit of using this method is that it may allow the Entry implementation to significantly optimize the operation, such as for purposes of delta updates and backup maintenance.

Parameters:

  | vUpdater | a ValueUpdater used to modify the Entry's value
  | ohValue | the new value to use

virtual bool isPresent | ( |  | ) | const `[pure virtual]`

Determine if this Entry exists in the Map.

If the Entry is not present, it can be created by calling setValue. If the Entry is present, it can be destroyed by calling remove.

Returns:
  true iff this Entry is existent in the containing Map

virtual void remove | ( | bool | fSynthetic | ) | `[pure virtual]`

Remove this Entry from the Map if it is present in the Map.

This method supports both the operation corresponding to Map::remove as well as synthetic operations such as eviction. If the containing Map does not differentiate between the two, then this method will always be identical to calling `remove(getKey())` on the containing Map.

Parameters:

  | fSynthetic | pass true only if the removal from the Map should be treated as a synthetic event

The documentation for this class was generated from the following file:

- coherence/util/InvocableMap.hpp

Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.