summaryrefslogtreecommitdiff
path: root/ndb/include/kernel/AttributeHeader.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/include/kernel/AttributeHeader.hpp')
-rw-r--r--ndb/include/kernel/AttributeHeader.hpp215
1 files changed, 0 insertions, 215 deletions
diff --git a/ndb/include/kernel/AttributeHeader.hpp b/ndb/include/kernel/AttributeHeader.hpp
deleted file mode 100644
index 3cb432067eb..00000000000
--- a/ndb/include/kernel/AttributeHeader.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef ATTRIBUTE_HEADER
-#define ATTRIBUTE_HEADER
-
-/**
- * @class AttributeHeader
- * @brief Header passed in front of every attribute value in AttrInfo signal
- */
-class AttributeHeader {
- friend class Dbtup;
- friend class Backup;
- friend class NdbOperation;
- friend class DbUtil;
- friend class Suma;
-
-public:
- /**
- * Psuedo columns
- */
- STATIC_CONST( PSUEDO = 0x8000 );
- STATIC_CONST( FRAGMENT = 0xFFFE ); // Read fragment no
- STATIC_CONST( ROW_COUNT = 0xFFFD ); // Read row count (committed)
- STATIC_CONST( COMMIT_COUNT = 0xFFFC ); // Read commit count
- STATIC_CONST( RANGE_NO = 0xFFFB ); // Read range no (when batched ranges)
-
- STATIC_CONST( ROW_SIZE = 0xFFFA );
- STATIC_CONST( FRAGMENT_MEMORY= 0xFFF9 );
-
- /** Initialize AttributeHeader at location aHeaderPtr */
- static AttributeHeader& init(void* aHeaderPtr, Uint32 anAttributeId,
- Uint32 aDataSize);
-
- /** Returns size of AttributeHeader (usually one or two words) */
- Uint32 getHeaderSize() const; // In 32-bit words
-
- /** Store AttributeHeader in location given as argument */
- void insertHeader(Uint32*);
-
- /** Get next attribute header (if there is one) */
- AttributeHeader* getNext() const;
-
- /** Get location of attribute value */
- Uint32* getDataPtr() const;
-
- /** Getters and Setters */
- Uint32 getAttributeId() const;
- void setAttributeId(Uint32);
- Uint32 getDataSize() const; // In 32-bit words
- void setDataSize(Uint32);
- bool isNULL() const;
- void setNULL();
-
- /** Print **/
- //void print(NdbOut&);
- void print(FILE*);
-
- static Uint32 getDataSize(Uint32);
-
-public:
- AttributeHeader(Uint32 = 0);
- AttributeHeader(Uint32 anAttributeId, Uint32 aDataSize);
- ~AttributeHeader();
-
- Uint32 m_value;
-};
-
-/**
- * 1111111111222222222233
- * 01234567890123456789012345678901
- * ssssssssssssss eiiiiiiiiiiiiiiii
- *
- * i = Attribute Id
- * s = Size of current "chunk" - 14 Bits -> 16384 (words) = 65k
- * Including optional extra word(s).
- * e - Element data/Blob, read element of array
- * If == 0 next data word contains attribute value.
- * If == 1 next data word contains:
- * For Array of Fixed size Elements
- * Start Index (16 bit), Stop Index(16 bit)
- * For Blob
- * Start offset (32 bit) (length is defined in previous word)
- *
- * An attribute value equal to "null" is represented by setting s == 0.
- *
- * Bit 14 is not yet used.
- */
-
-inline
-AttributeHeader& AttributeHeader::init(void* aHeaderPtr, Uint32 anAttributeId,
- Uint32 aDataSize)
-{
- return * new (aHeaderPtr) AttributeHeader(anAttributeId, aDataSize);
-}
-
-inline
-AttributeHeader::AttributeHeader(Uint32 aHeader)
-{
- m_value = aHeader;
-}
-
-inline
-AttributeHeader::AttributeHeader(Uint32 anAttributeId, Uint32 aDataSize)
-{
- m_value = 0;
- this->setAttributeId(anAttributeId);
- this->setDataSize(aDataSize);
-}
-
-inline
-AttributeHeader::~AttributeHeader()
-{}
-
-inline
-Uint32 AttributeHeader::getHeaderSize() const
-{
- // Should check 'e' bit here
- return 1;
-}
-
-inline
-Uint32 AttributeHeader::getAttributeId() const
-{
- return (m_value & 0xFFFF0000) >> 16;
-}
-
-inline
-void AttributeHeader::setAttributeId(Uint32 anAttributeId)
-{
- m_value &= 0x0000FFFF; // Clear attribute id
- m_value |= (anAttributeId << 16);
-}
-
-inline
-Uint32 AttributeHeader::getDataSize() const
-{
- return (m_value & 0x3FFF);
-}
-
-inline
-void AttributeHeader::setDataSize(Uint32 aDataSize)
-{
- m_value &= (~0x3FFF);
- m_value |= aDataSize;
-}
-
-inline
-bool AttributeHeader::isNULL() const
-{
- return (getDataSize() == 0);
-}
-
-inline
-void AttributeHeader::setNULL()
-{
- setDataSize(0);
-}
-
-inline
-Uint32* AttributeHeader::getDataPtr() const
-{
- return (Uint32*)&m_value + getHeaderSize();
-}
-
-inline
-void AttributeHeader::insertHeader(Uint32* target)
-{
- *target = m_value;
-}
-
-inline
-AttributeHeader*
-AttributeHeader::getNext() const {
- return (AttributeHeader*)(getDataPtr() + getDataSize());
-}
-
-inline
-void
-//AttributeHeader::print(NdbOut& output) {
-AttributeHeader::print(FILE* output) {
- fprintf(output, "AttributeId: H\'%.8x (D\'%d), DataSize: H\'%.8x (D\'%d), "
- "isNULL: %d\n",
- getAttributeId(), getAttributeId(),
- getDataSize(), getDataSize(),
- isNULL());
-}
-
-inline
-Uint32
-AttributeHeader::getDataSize(Uint32 m_value){
- return (m_value & 0x3FFF);
-}
-
-#endif
-
-
-
-
-
-
-