BitAccessor Class Reference

BitAccessor accesses NOT NULL bit attributes. More...

#include <AttributeAccessorImpl.h>

Inheritance diagram for BitAccessor:

AttributeAccessorImpl AttributeAccessor List of all members.

Public Member Functions

void unmarshalValue (TupleAccessor const &tupleAccessor, TupleDatum &value) const
 Unmarshals the attribute's value by setting up the data pointer, length, and null indicator; does not actually copy any data.
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.

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

BitAccessor accesses NOT NULL bit attributes.

Definition at line 228 of file AttributeAccessorImpl.h.


Member Function Documentation

void BitAccessor::unmarshalValue ( TupleAccessor const &  tupleAccessor,
TupleDatum value 
) const [inline, virtual]

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

Implements AttributeAccessor.

Definition at line 232 of file AttributeAccessorImpl.h.

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

00234     {
00235         if (tupleAccessor.getBitFields()[iValueBit]) {
00236             value.pData = reinterpret_cast<PConstBuffer>(
00237                 &(TupleAccessor::BOOL_TRUE));
00238         } else {
00239             value.pData = reinterpret_cast<PConstBuffer>(
00240                 &(TupleAccessor::BOOL_FALSE));
00241         }
00242     }

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

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, inherited]

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     }


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::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::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::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::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::AttributeAccessorImpl(), TupleAccessor::compute(), TupleAccessor::marshal(), TupleAccessor::unmarshal(), VarOffsetAccessor< network >::unmarshalValue(), and FixedOffsetVarWidthAccessor< network >::unmarshalValue().


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