⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtux.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 3 页
字号:
inline Uint32Dbtux::TupLoc::getPageOffset() const{  return (Uint32)m_pageOffset;}inline voidDbtux::TupLoc::setPageOffset(Uint32 pageOffset){  m_pageOffset = (Uint16)pageOffset;}inline boolDbtux::TupLoc::operator==(const TupLoc& loc) const{  return    m_pageId1 == loc.m_pageId1 &&    m_pageId2 == loc.m_pageId2 &&    m_pageOffset == loc.m_pageOffset;}inline boolDbtux::TupLoc::operator!=(const TupLoc& loc) const{  return ! (*this == loc);}// Dbtux::TreeEntinlineDbtux::TreeEnt::TreeEnt() :  m_tupLoc(),  m_tupVersion(0),  m_fragBit(0){}inline boolDbtux::TreeEnt::eq(const TreeEnt ent) const{  return    m_tupLoc == ent.m_tupLoc &&    m_tupVersion == ent.m_tupVersion &&    m_fragBit == ent.m_fragBit;}inline intDbtux::TreeEnt::cmp(const TreeEnt ent) const{  if (m_tupLoc.getPageId() < ent.m_tupLoc.getPageId())    return -1;  if (m_tupLoc.getPageId() > ent.m_tupLoc.getPageId())    return +1;  if (m_tupLoc.getPageOffset() < ent.m_tupLoc.getPageOffset())    return -1;  if (m_tupLoc.getPageOffset() > ent.m_tupLoc.getPageOffset())    return +1;  if (m_tupVersion < ent.m_tupVersion)    return -1;  if (m_tupVersion > ent.m_tupVersion)    return +1;  if (m_fragBit < ent.m_fragBit)    return -1;  if (m_fragBit > ent.m_fragBit)    return +1;  return 0;}// Dbtux::TreeNodeinlineDbtux::TreeNode::TreeNode() :  m_side(2),  m_balance(0 + 1),  pad1(0),  m_occup(0),  m_nodeScan(RNIL){  m_link[0] = NullTupLoc;  m_link[1] = NullTupLoc;  m_link[2] = NullTupLoc;}// Dbtux::TreeHeadinlineDbtux::TreeHead::TreeHead() :  m_nodeSize(0),  m_prefSize(0),  m_minOccup(0),  m_maxOccup(0),  m_root(){}inline unsignedDbtux::TreeHead::getSize(AccSize acc) const{  switch (acc) {  case AccNone:    return 0;  case AccHead:    return NodeHeadSize;  case AccPref:    return NodeHeadSize + m_prefSize + 2 * TreeEntSize;  case AccFull:    return m_nodeSize;  }  return 0;}inline Dbtux::DataDbtux::TreeHead::getPref(TreeNode* node) const{  Uint32* ptr = (Uint32*)node + NodeHeadSize;  return ptr;}inline Dbtux::TreeEnt*Dbtux::TreeHead::getEntList(TreeNode* node) const{  Uint32* ptr = (Uint32*)node + NodeHeadSize + m_prefSize;  return (TreeEnt*)ptr;}// Dbtux::TreePosinlineDbtux::TreePos::TreePos() :  m_loc(),  m_pos(ZNIL),  m_match(false),  m_dir(255){}// Dbtux::DescPageinlineDbtux::DescPage::DescPage() :  m_nextPage(RNIL),  m_numFree(ZNIL){  for (unsigned i = 0; i < DescPageSize; i++) {#ifdef VM_TRACE    m_data[i] = 0x13571357;#else    m_data[i] = 0;#endif  }}// Dbtux::ScanOpinlineDbtux::ScanOp::ScanOp(ScanBoundPool& scanBoundPool) :  m_state(Undef),  m_lockwait(false),  m_userPtr(RNIL),  m_userRef(RNIL),  m_tableId(RNIL),  m_indexId(RNIL),  m_fragPtrI(RNIL),  m_transId1(0),  m_transId2(0),  m_savePointId(0),  m_accLockOp(RNIL),  m_readCommitted(0),  m_lockMode(0),  m_descending(0),  m_boundMin(scanBoundPool),  m_boundMax(scanBoundPool),  m_scanPos(),  m_scanEnt(),  m_nodeScan(RNIL),  m_maxAccLockOps(0){  m_bound[0] = &m_boundMin;  m_bound[1] = &m_boundMax;  m_boundCnt[0] = 0;  m_boundCnt[1] = 0;#ifdef VM_TRACE  for (unsigned i = 0; i < MaxAccLockOps; i++) {    m_accLockOps[i] = 0x1f1f1f1f;  }#endif}// Dbtux::IndexinlineDbtux::Index::Index() :  m_state(NotDefined),  m_tableType(DictTabInfo::UndefTableType),  m_tableId(RNIL),  m_numFrags(0),  m_descPage(RNIL),  m_descOff(0),  m_numAttrs(0),  m_storeNullKey(false){  for (unsigned i = 0; i < MaxIndexFragments; i++) {    m_fragId[i] = ZNIL;    m_fragPtrI[i] = RNIL;  };}// Dbtux::FraginlineDbtux::Frag::Frag(ArrayPool<ScanOp>& scanOpPool) :  m_tableId(RNIL),  m_indexId(RNIL),  m_fragId(ZNIL),  m_descPage(RNIL),  m_descOff(0),  m_numAttrs(ZNIL),  m_storeNullKey(false),  m_tree(),  m_freeLoc(),  m_scanList(scanOpPool),  m_tupIndexFragPtrI(RNIL){  m_tupTableFragPtrI[0] = RNIL;  m_tupTableFragPtrI[1] = RNIL;  m_accTableFragPtrI[0] = RNIL;  m_accTableFragPtrI[1] = RNIL;}// Dbtux::FragOpinlineDbtux::FragOp::FragOp() :  m_userPtr(RNIL),  m_userRef(RNIL),  m_indexId(RNIL),  m_fragId(ZNIL),  m_fragPtrI(RNIL),  m_fragNo(ZNIL),  m_numAttrsRecvd(ZNIL){}// Dbtux::NodeHandleinlineDbtux::NodeHandle::NodeHandle(Frag& frag) :  m_frag(frag),  m_loc(),  m_node(0){}inlineDbtux::NodeHandle::NodeHandle(const NodeHandle& node) :  m_frag(node.m_frag),  m_loc(node.m_loc),  m_node(node.m_node){}inline Dbtux::NodeHandle&Dbtux::NodeHandle::operator=(const NodeHandle& node){  ndbassert(&m_frag == &node.m_frag);  m_loc = node.m_loc;  m_node = node.m_node;  return *this;}inline boolDbtux::NodeHandle::isNull(){  return m_node == 0;}inline Dbtux::TupLocDbtux::NodeHandle::getLink(unsigned i){  ndbrequire(i <= 2);  return m_node->m_link[i];}inline unsignedDbtux::NodeHandle::getChilds(){  return (m_node->m_link[0] != NullTupLoc) + (m_node->m_link[1] != NullTupLoc);}inline unsignedDbtux::NodeHandle::getSide(){  return m_node->m_side;}inline unsignedDbtux::NodeHandle::getOccup(){  return m_node->m_occup;}inline intDbtux::NodeHandle::getBalance(){  return (int)m_node->m_balance - 1;}inline Uint32Dbtux::NodeHandle::getNodeScan(){  return m_node->m_nodeScan;}inline voidDbtux::NodeHandle::setLink(unsigned i, TupLoc loc){  ndbrequire(i <= 2);  m_node->m_link[i] = loc;}inline voidDbtux::NodeHandle::setSide(unsigned i){  ndbrequire(i <= 2);  m_node->m_side = i;}inline voidDbtux::NodeHandle::setOccup(unsigned n){  TreeHead& tree = m_frag.m_tree;  ndbrequire(n <= tree.m_maxOccup);  m_node->m_occup = n;}inline voidDbtux::NodeHandle::setBalance(int b){  ndbrequire(abs(b) <= 1);  m_node->m_balance = (unsigned)(b + 1);}inline voidDbtux::NodeHandle::setNodeScan(Uint32 scanPtrI){  m_node->m_nodeScan = scanPtrI;}inline Dbtux::DataDbtux::NodeHandle::getPref(){  TreeHead& tree = m_frag.m_tree;  return tree.getPref(m_node);}inline Dbtux::TreeEntDbtux::NodeHandle::getEnt(unsigned pos){  TreeHead& tree = m_frag.m_tree;  TreeEnt* entList = tree.getEntList(m_node);  const unsigned occup = m_node->m_occup;  ndbrequire(pos < occup);  return entList[(1 + pos) % occup];}inline Dbtux::TreeEntDbtux::NodeHandle::getMinMax(unsigned i){  const unsigned occup = m_node->m_occup;  ndbrequire(i <= 1 && occup != 0);  return getEnt(i == 0 ? 0 : occup - 1);}// parameters for methods#ifdef VM_TRACEinlineDbtux::PrintPar::PrintPar() :  // caller fills in  m_path(),  m_side(255),  m_parent(),  // default return values  m_depth(0),  m_occup(0),  m_ok(true){}#endif// utilsinline Dbtux::DescEnt&Dbtux::getDescEnt(Uint32 descPage, Uint32 descOff){  DescPagePtr pagePtr;  pagePtr.i = descPage;  c_descPagePool.getPtr(pagePtr);  ndbrequire(descOff < DescPageSize);  DescEnt* descEnt = (DescEnt*)&pagePtr.p->m_data[descOff];  return *descEnt;}inline Uint32Dbtux::getTupAddr(const Frag& frag, TreeEnt ent){  const Uint32 tableFragPtrI = frag.m_tupTableFragPtrI[ent.m_fragBit];  const TupLoc tupLoc = ent.m_tupLoc;  Uint32 tupAddr = NullTupAddr;  c_tup->tuxGetTupAddr(tableFragPtrI, tupLoc.getPageId(), tupLoc.getPageOffset(), tupAddr);  jamEntry();  return tupAddr;}inline unsignedDbtux::min(unsigned x, unsigned y){  return x < y ? x : y;}inline unsignedDbtux::max(unsigned x, unsigned y){  return x > y ? x : y;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -