#include <AttributeAccessorImpl.h>
Inheritance diagram for FixedOffsetVarWidthAccessor< network >:
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. |
This attribute is special because the offset is fixed, but the width is not.
Definition at line 180 of file AttributeAccessorImpl.h.
void FixedOffsetVarWidthAccessor< network >::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.
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 184 of file AttributeAccessorImpl.h.
References TupleDatum::cbData, AttributeAccessor::cbStorage, TupleAccessor::getCurrentTupleBuf(), AttributeAccessor::iEndIndirectOffset, AttributeAccessor::iFixedOffset, TupleDatum::pData, and TupleAccessor::referenceIndirectOffset().
00186 { 00187 value.pData = tupleAccessor.getCurrentTupleBuf() + iFixedOffset; 00188 TupleAccessor::StoredValueOffset const *pEndOffset = 00189 tupleAccessor.referenceIndirectOffset(iEndIndirectOffset); 00190 uint16_t iEndOffset = *pEndOffset; 00191 if (network) { 00192 iEndOffset = ntohs(iEndOffset); 00193 } 00194 value.cbData = iEndOffset - iFixedOffset; 00195 assert(value.cbData <= cbStorage); 00196 }
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.
tupleAccessor | containing TupleAccessor set up with the current tuple image to be accessed | |
value | receives the null bit |
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.
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.
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().