Exemplo n.º 1
0
void ex_queue::logHeader()
{
#if (!defined (__EID) && !defined(NA_C89))
  if (upDown_ == UP_QUEUE)
    {
      cerr 
         << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
         << "(" << unblockSubtask_->getTcb() << ")" 
         << " up to "
         << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
         << "(" << insertSubtask_->getTcb() << ")" 
         ;
    }
  else
    {
      cerr << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
           << "(" << unblockSubtask_->getTcb() << ")" 
           << " down to "
           << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
           << "(" << insertSubtask_->getTcb() << ")" 
           ;
    }

#endif  
}
Exemplo n.º 2
0
void ex_queue::logHeader()
{
  if (upDown_ == UP_QUEUE)
    {
      cerr 
         << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
         << "(" << unblockSubtask_->getTcb() << ")" 
         << " up to "
         << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
         << "(" << insertSubtask_->getTcb() << ")" 
         ;
    }
  else
    {
      cerr << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
           << "(" << unblockSubtask_->getTcb() << ")" 
           << " down to "
           << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
           << "(" << insertSubtask_->getTcb() << ")" 
           ;
    }
}
Exemplo n.º 3
0
void CChildView::ReplaceSelectedWithType(NodeType Type)
{
	std::vector<CNodeBase*> newSelected;

	PrintOut(_T("Replace Node Type %Ts"), NodeTypeToString(Type));

	for (UINT i = 0; i < Selected.size(); i++)
	{
		if (!theApp.IsNodeValid(Selected[i].object))
			continue;
		if (Selected[i].object->pParent->GetType() == nt_vtable)
			Type = nt_function;

		CNodeBase* pNewNode = theApp.CreateNewNode(Type);

		if (Type == nt_class)	MakeBasicClass((CNodeClass*)pNewNode);
		if (Type == nt_custom)	((CNodeCustom*)pNewNode)->memsize = Selected[i].object->GetMemorySize();
		if (Type == nt_text)	((CNodeText*)pNewNode)->memsize = Selected[i].object->GetMemorySize();
		if (Type == nt_unicode)	((CNodeUnicode*)pNewNode)->memsize = Selected[i].object->GetMemorySize();
		if (Type == nt_vtable)
		{
			for (int i = 0; i < 10; i++)
			{
				CNodeVTable* pVTable = (CNodeVTable*)pNewNode;
				CNodeFunctionPtr* pFun = new CNodeFunctionPtr;
				pFun->offset = i * 8;
				pFun->pParent = pVTable;
				pVTable->Nodes.push_back(pFun);
			}
		}
		if (Type == nt_pointer)
		{
			CNodePtr*	pPtr = (CNodePtr*)pNewNode;
			CNodeClass* pClass = (CNodeClass*)theApp.CreateNewNode(nt_class);
			MakeBasicClass(pClass);
			pPtr->pNode = pClass;
		}
		if (Type == nt_array)
		{
			CNodeArray* pArray = (CNodeArray*)pNewNode;
			CNodeClass* pClass = (CNodeClass*)theApp.CreateNewNode(nt_class);
			MakeBasicClass(pClass);
			pArray->pNode = pClass;
		}
		if (Type == nt_instance)
		{
			CNodeClassInstance* pInstance = (CNodeClassInstance*)pNewNode;
			CNodeClass*			pClass = (CNodeClass*)theApp.CreateNewNode(nt_class);
			MakeBasicClass(pClass);
			pInstance->pNode = pClass;
		}

		ReplaceNode((CNodeClass*)Selected[i].object->pParent, FindNodeIndex(Selected[i].object), pNewNode);
		newSelected.push_back(pNewNode);
	}

	Selected.clear();
	for (UINT i = 0; i < newSelected.size(); i++)
	{
		newSelected[i]->bSelected = true;
		CNodeClass* pClass = (CNodeClass*)newSelected[i]->pParent;

		HotSpot spot;
		spot.Address = pClass->offset + newSelected[i]->offset;
		spot.object = newSelected[i];
		Selected.push_back(spot);
	}

	Invalidate(FALSE);
}
Exemplo n.º 4
0
void ex_queue::injectErrorOrCancel()
{
#ifdef _DEBUG
  ex_queue_entry *qe = getQueueEntry(tail_-1);

  // DO the ol' switcheroo, but not every time.
  ULng32 freq = insertSubtask_->getTcb()->getGlobals()->getInjectErrorAtQueue();
  if (freq == 0)
      return;
  if (upDown_ == UP_QUEUE)
    {
       if ((rand() & (freq-1)) != 0)
         return;
        NABoolean needsError = FALSE;
        switch (qe->upState.status)
        {
        case Q_OK_MMORE:
          {
            needsError = TRUE;
            qe->upState.status = Q_SQLERROR;
            cerr << "Converting a Q_OK_MMORE to a Q_SQLERROR, from "
                 << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
                 << "(" << unblockSubtask_->getTcb() << ")" 
                 << " to "
                 << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
                 << "(" << insertSubtask_->getTcb() << ")" 
                 << endl;
            break;
          }
        case Q_NO_DATA:
          if (!isFull())
            {
              needsError = TRUE;
              qe->upState.status = Q_SQLERROR;
              ex_queue_entry *newQNODATA = getTailEntry();
              newQNODATA->upState = qe->upState;
              newQNODATA->upState.status  = Q_NO_DATA;
              newQNODATA->getAtp()->copyAtp(qe->getAtp());
              tail_++;
              cerr << "Injecting a Q_SQLERROR before a Q_NO_DATA, from " 
                 << NodeTypeToString(unblockSubtask_->getTcb()->getNodeType())
                 << "(" << unblockSubtask_->getTcb() << ")" 
                 << " to "
                 << NodeTypeToString(insertSubtask_->getTcb()->getNodeType())
                 << "(" << insertSubtask_->getTcb() << ")" 
                 << endl;
            }
          break;
        default:
            break;
        } 
        if (needsError)
          {
            ComDiagsArea * da = qe->getDiagsArea();
            if (!da) 
              da = ComDiagsArea::allocate(insertSubtask_->getTcb()->getHeap());
            else
              da = da->copy();
            qe->setDiagsArea(da);

            *da << DgSqlCode(-EXE_ERROR_INJECTED)
                << DgString0(__FILE__)
                << DgInt0(__LINE__);
          }
    }
#endif

  return;
}