Oracle Coherence for C++ API
Release 3.6.0.0

E15728-01

PofExtractor Class Reference

#include <coherence/util/extractor/PofExtractor.hpp>

Inherits AbstractExtractor, and PortableObject.

List of all members.


Detailed Description

POF-based ValueExtractor implementation.

PofExtractor takes advantage of POF's indexed state to extract part of an object without needing to deserialize the entire object.

POF uses a compact form in the serialized value when possible. For example, some numeric values are represented as special POF intrinsic types in which the type implies the value. As a result, POF requires the receiver of a value to have implicit knowledge of the type. PofExtractor uses the type supplied in the constructor as the source of the type information. If the type is void, PofExtractor will infer the type from the serialized state. See PofConstants for the list of the POF types.

In C++ the type is expressed by type_info which is obtained from the typeid operator.

Example where extracted value is float64_t:


     ValueExtractor::Handle hExtractor =
         PofExtractor::create(typeid(float64_t), 0);
 

Example where extracted value should be inferred from the serialized state:


     ValueExtractor::Handle hExtractor =
         PofExtractor::create(typeid(void), 0);
 

Author:
as/gm 2009.04.02
Since:
Coherence 3.5

Public Types

typedef spec::Handle Handle
 PofExtractor Handle definition.
typedef spec::View View
 PofExtractor View definition.
typedef spec::Holder Holder
 PofExtractor Holder definition.

Public Member Functions

virtual Object::Holder extractFromEntry (Map::Entry::Holder ohEntry) const
 Extract the value from the passed Entry object.
virtual void readExternal (PofReader::Handle hIn)
 
virtual void writeExternal (PofWriter::Handle hOut) const
 
virtual bool equals (Object::View v) const
 Compare the PofExtractor with another object to determine equality.
virtual size32_t hashCode () const
 Determine a hash value for the PofExtractor object according to the general Object#hashCode() contract.
virtual void toStream (std::ostream &out) const
 Return a human-readable description for this PofExtractor.
Class::View getClassExtracted () const
 Obtain the Class of the extracted value.
virtual
PofNavigator::View 
getNavigator () const
 Obtain the PofPath for this extractor.

Protected Member Functions

 PofExtractor ()
 Default constructor (necessary for the PortableObject interface).
 PofExtractor (const std::type_info &info, int32_t iProp)
 Constructs a PofExtractor based on a property index.
 PofExtractor (const std::type_info &info, PofNavigator::View vNavigator, int32_t nTarget=VALUE)
 Constructs a PofExtractor based on a property path and the entry extraction target.
virtual int32_t getPofTypeId (PofContext::View vCtx) const
 Compute the expected pof type id based on the class.

Constructor & Destructor Documentation

PofExtractor ( const std::type_info &  info,
int32_t  iProp 
) [protected]

Constructs a PofExtractor based on a property index.

This constructor is equivalent to:

   PofExtractor::View vExtractor =
       PofExtractor::create(info, SimplePofPath::create(iProp), VALUE);
 

Parameters:
info the required type of the extracted value or void if the type is to be inferred from the serialized state
iProp property index

PofExtractor ( const std::type_info &  info,
PofNavigator::View  vNavigator,
int32_t  nTarget = VALUE 
) [protected]

Constructs a PofExtractor based on a property path and the entry extraction target.

Parameters:
info the required type of the extracted value or void if the type is to be inferred from the serialized state
vNavigator POF navigator
nTarget one of the VALUE or KEY values


Member Function Documentation

virtual Object::Holder extractFromEntry ( Map::Entry::Holder  ohEntry  )  const [virtual]

Extract the value from the passed Entry object.

The returned value should follow the conventions outlined in the extract method.

This method will always throw a UnsupportedOperationException if called directly by the C++ client application, as its execution is only meaningful within the cluster.

It is expected that this extractor will only be used against POF-encoded binary entries within a remote partitioned cache.

Parameters:
entry an Entry object to extract a desired value from
Exceptions:
UnsupportedOperationException always, as it is expected that this extractor will only be executed within the cluster.
Returns:
the extracted value

Reimplemented from AbstractExtractor.

virtual bool equals ( Object::View  v  )  const [virtual]

Compare the PofExtractor with another object to determine equality.

Two PofExtractor objects are considered equal iff their paths are equal and they have the same target (key or value).

Returns:
true iff this PofExtractor and the passed object are equivalent

virtual size32_t hashCode (  )  const [virtual]

Determine a hash value for the PofExtractor object according to the general Object#hashCode() contract.

Returns:
an integer hash value for this PofExtractor object

Reimplemented from Object.

virtual void toStream ( std::ostream &  out  )  const [virtual]

Return a human-readable description for this PofExtractor.

Returns:
a String description of the PofExtractor

Reimplemented from Object.

Class::View getClassExtracted (  )  const

Obtain the Class of the extracted value.

Returns:
the expected Class

virtual PofNavigator::View getNavigator (  )  const [virtual]

Obtain the PofPath for this extractor.

Returns:
the PofPath value

virtual int32_t getPofTypeId ( PofContext::View  vCtx  )  const [protected, virtual]

Compute the expected pof type id based on the class.

Parameters:
vCtx pof context
Returns:
pof type id or T_UNKNOWN if the class is null.


The documentation for this class was generated from the following file:
Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.