AttributeAccessorImpl Class Reference

AttributeAccessorImpl is a common base for all implementations of the AttributeAccessor interface. More...

#include <AttributeAccessorImpl.h>

Inheritance diagram for AttributeAccessorImpl:

AttributeAccessor BitAccessor FixedOffsetVarWidthAccessor< network > FixedWidthAccessor VarOffsetAccessor< network > FixedWidthNetworkAccessor16 FixedWidthNetworkAccessor32 FixedWidthNetworkAccessor64 List of all members.

Public Member Functions

 AttributeAccessorImpl ()
bool unmarshalNullableValue (TupleAccessor const &tupleAccessor, TupleDatum &value) const
 Tests the null indicator for this attribute in the tuple's null bit array.
void marshalValueData (PBuffer pDestData, TupleDatum const &value) const
 Marshals value data for the attribute.
virtual void unmarshalValue (TupleAccessor const &tupleAccessor, TupleDatum &value) const=0
 Unmarshals the attribute's value by setting up the data pointer, length, and null indicator; does not actually copy any data.

Public Attributes

uint iNullBit
 Index of this attribute's null indicator bit in the tuple's bit array, or MAXU for a NOT NULL attribute.
uint iFixedOffset
 Byte offset of this attribute within a stored tuple image, or MAXU if the start is variable.
uint iEndIndirectOffset
 Indirect offset of the end of this attribute within a stored tuple image, or MAXU if the end is fixed.
uint iValueBit
 Index of this attribute's value in the tuple's bit array, or MAXU for a non-bit attribute.
TupleStorageByteLength cbStorage
 Copied from TupleAttributeDescriptor.cbStorage.

Detailed Description

AttributeAccessorImpl is a common base for all implementations of the AttributeAccessor interface.

Definition at line 43 of file AttributeAccessorImpl.h.


Constructor & Destructor Documentation

AttributeAccessorImpl::AttributeAccessorImpl (  )  [explicit]

Definition at line 33 of file AttributeAccessorImpl.cpp.

References AttributeAccessor::cbStorage, AttributeAccessor::iEndIndirectOffset, AttributeAccessor::iFixedOffset, AttributeAccessor::iNullBit, AttributeAccessor::iValueBit, and MAXU.

00034 {
00035     iNullBit = MAXU;
00036     iFixedOffset = MAXU;
00037     iEndIndirectOffset = MAXU;
00038     iValueBit = MAXU;
00039     cbStorage = 0;
00040 }


Member Function Documentation

bool AttributeAccessorImpl::unmarshalNullableValue ( TupleAccessor const &  tupleAccessor,
TupleDatum value 
) const [inline]

Tests the null indicator for this attribute in the tuple's null bit array.

Parameters:
tupleAccessor containing TupleAccessor set up with the current tuple image to be accessed
value receives the null bit
Returns:
true if value is null; false otherwise

Definition at line 60 of file AttributeAccessorImpl.h.

References TupleAccessor::getBitFields(), and TupleDatum::pData.

00062     {
00063         if (tupleAccessor.getBitFields()[iNullBit]) {
00064             value.pData = NULL;
00065             return true;
00066         } else {
00067             return false;
00068         }
00069     }

void AttributeAccessorImpl::marshalValueData ( PBuffer  pDestData,
TupleDatum const &  value 
) const [inline, virtual]

Marshals value data for the attribute.

Only deals with the data bytes, not length and null indicators.

Parameters:
pDestData the target address where the data should be marshalled
value the value to be marshalled

Implements AttributeAccessor.

Reimplemented in FixedWidthNetworkAccessor16, FixedWidthNetworkAccessor32, and FixedWidthNetworkAccessor64.

Definition at line 71 of file AttributeAccessorImpl.h.

References TupleDatum::cbData, and TupleDatum::pData.

00074     {
00075         memcpy(pDestData,value.pData,value.cbData);
00076     }

virtual void AttributeAccessor::unmarshalValue ( TupleAccessor const &  tupleAccessor,
TupleDatum value 
) const [pure virtual, inherited]

Unmarshals the attribute's value by setting up the data pointer, length, and null indicator; does not actually copy any data.

Parameters:
tupleAccessor containing TupleAccessor set up with the current tuple image to be accessed
value receives the reference to the unmarshalled value

Implemented in FixedWidthAccessor, FixedWidthNetworkAccessor16, FixedWidthNetworkAccessor32, FixedWidthNetworkAccessor64, FixedOffsetVarWidthAccessor< network >, VarOffsetAccessor< network >, and BitAccessor.

Referenced by BTreeAccessBase::getChildForCurrent(), BTreeWriter::splitCurrentNode(), and TupleTest::testMarshal().


Member Data Documentation

uint AttributeAccessor::iNullBit [inherited]

Index of this attribute's null indicator bit in the tuple's bit array, or MAXU for a NOT NULL attribute.

Definition at line 53 of file AttributeAccessor.h.

Referenced by AttributeAccessorImpl(), TupleAccessor::compute(), Java_net_sf_farrago_fennel_FennelStorage_getAccessorXmiForTupleDescriptor(), TupleAccessor::marshal(), and TupleAccessor::unmarshal().

uint AttributeAccessor::iFixedOffset [inherited]

Byte offset of this attribute within a stored tuple image, or MAXU if the start is variable.

Definition at line 59 of file AttributeAccessor.h.

Referenced by AttributeAccessorImpl(), TupleAccessor::compute(), TupleAccessor::initFixedAccessors(), TupleAccessor::marshal(), TupleAccessor::unmarshal(), and FixedOffsetVarWidthAccessor< network >::unmarshalValue().

uint AttributeAccessor::iEndIndirectOffset [inherited]

Indirect offset of the end of this attribute within a stored tuple image, or MAXU if the end is fixed.

Definition at line 65 of file AttributeAccessor.h.

Referenced by AttributeAccessorImpl(), TupleAccessor::marshal(), TupleAccessor::unmarshal(), VarOffsetAccessor< network >::unmarshalValue(), and FixedOffsetVarWidthAccessor< network >::unmarshalValue().

uint AttributeAccessor::iValueBit [inherited]

Index of this attribute's value in the tuple's bit array, or MAXU for a non-bit attribute.

Definition at line 71 of file AttributeAccessor.h.

Referenced by AttributeAccessorImpl(), TupleAccessor::marshal(), and TupleAccessor::unmarshal().

TupleStorageByteLength AttributeAccessor::cbStorage [inherited]

Copied from TupleAttributeDescriptor.cbStorage.

This is not used for anything except assertions.

Definition at line 77 of file AttributeAccessor.h.

Referenced by AttributeAccessorImpl(), TupleAccessor::compute(), TupleAccessor::marshal(), TupleAccessor::unmarshal(), VarOffsetAccessor< network >::unmarshalValue(), and FixedOffsetVarWidthAccessor< network >::unmarshalValue().


The documentation for this class was generated from the following files:
Generated on Mon Jun 22 04:00:24 2009 for Fennel by  doxygen 1.5.1