示例#1
0
void marshalSectionDict(StorageIntf *s,SectionDict *sections)
{
  if (sections==0)
  {
    marshalUInt(s,NULL_LIST); // null pointer representation
  }
  else
  {
    marshalUInt(s,sections->count());
    SDict<SectionInfo>::IteratorDict sli(*sections);
    SectionInfo *si;
    for (sli.toFirst();(si=sli.current());++sli)
    {
      marshalQCString(s,sli.currentKey());
      marshalObjPointer(s,si);
    }
  }
}
示例#2
0
void LoadMonitor::addLoadReading() {
    /* FIXME load reading of server message queue is now gone, not sure what we
     * want to measure instead, or maybe augment server message queue to provide
     * different statistics.
    std::vector<QueueInfo> qInfo;
    mServerMsgQueue->getQueueInfo(qInfo);

    float currentLoad = 0;
    mCurrentLoadReading = 0;
    for (std::vector<QueueInfo>::iterator it = qInfo.begin(); it != qInfo.end(); it++) {
    QueueInfo q = *it;
    currentLoad += q.mTXUsed * q.mTXWeight;
    }

    mCurrentLoadReading = currentLoad;
    */
    mAveragedLoadReading = ALPHA * mAveragedLoadReading +
                           (1.0-ALPHA) * mCurrentLoadReading;

    printf("mAveragedLoadReading at %d=%f\n", mContext->id(), mAveragedLoadReading);


    if (mAveragedLoadReading > THRESHOLD) {
        std::vector<ServerLoadInfo> migrationHints;
        std::map<ServerID, float>::const_iterator map_iter;
        for (map_iter = mRemoteLoadReadings.begin();
                map_iter != mRemoteLoadReadings.end();
                map_iter++)
        {
            ServerLoadInfo sli(map_iter->first, map_iter->second, 0);
            migrationHints.push_back(sli);
        }

        sort(migrationHints.begin(), migrationHints.end(), loadInfoComparator);


        mCoordinateSegmentation->migrationHint(migrationHints);
    }

    sendLoadReadings();
}
示例#3
0
void marshalSectionInfoList(StorageIntf *s, QList<SectionInfo> *anchors)
{
    if (anchors==0)
    {
        marshalUInt(s,NULL_LIST); // null pointer representation
    }
    else
    {
        marshalUInt(s,anchors->count());
        QListIterator<SectionInfo> sli(*anchors);
        SectionInfo *si;
        for (sli.toFirst(); (si=sli.current()); ++sli)
        {
            marshalQCString(s,si->label);
            marshalQCString(s,si->title);
            marshalQCString(s,si->ref);
            marshalInt(s,(int)si->type);
            marshalQCString(s,si->fileName);
        }
    }
}
示例#4
0
文件: doxyapp.cpp 项目: kaos/doxygen
static void listSymbols()
{
  QDictIterator<DefinitionIntf> sli(*Doxygen::symbolMap);
  DefinitionIntf *di;
  for (sli.toFirst();(di=sli.current());++sli)
  {
    if (di->definitionType()==DefinitionIntf::TypeSymbolList) // list of symbols
      // with same name
    {
      DefinitionListIterator dli(*(DefinitionList*)di);
      Definition *d;
      // for each symbol
      for (dli.toFirst();(d=dli.current());++dli)
      {
        listSymbol(d);
      }
    }
    else // single symbol
    {
      listSymbol((Definition*)di);
    }
  }
}
示例#5
0
文件: AEA.cpp 项目: Kampbell/ISODE
	ReturnCode	AEA::decode(NetworkBuffer& tsdu) {
		ReturnCode rc = OK;
		rc = SPDU::control(tsdu); 
		if (sli() == 0)
			return OK;
		while (tsdu.hasRemaining()) {
			tsdu.markit();
			byte code = tsdu.get();
			switch (code) {
				case PI::PI_SERIAL: {
					SERIAL pi(tsdu);
					aea_serial = pi.getValue();
					addMask(SMASK_AEA_SERIAL);
				}
				break;
			    case PI::PI_ENCLOSE: {
			    	ENCLOSE pi(tsdu);
			    	setEnclose(pi.getValue());
					addMask(SMASK_ENCLOSE);
			    }
				break;
			    case PI::PI_UDATA: {
			    	UDATA pi(tsdu);
					int cc = 0;
					const byte* data = pi.getValue(cc);
		    		setData(cc, data);
			    }
				break;
				default:
					tsdu.reset();
					goto EXIT;
			}
		}
	 EXIT:
		 return rc;
	}
示例#6
0
/*! Injects the info gathered by the XML parser into the Entry tree.
 *  This tree contains the information extracted from the input in a 
 *  "unrelated" form.
 */
void TagFileParser::buildLists(Entry *root)
{
  // build class list
  TagClassInfo *tci = m_tagFileClasses.first();
  while (tci)
  {
    Entry *ce = new Entry;
    ce->section = Entry::CLASS_SEC;
    switch (tci->kind)
    {
      case TagClassInfo::Class:     break;
      case TagClassInfo::Struct:    ce->spec = Entry::Struct;    break;
      case TagClassInfo::Union:     ce->spec = Entry::Union;     break;
      case TagClassInfo::Interface: ce->spec = Entry::Interface; break;
      case TagClassInfo::Exception: ce->spec = Entry::Exception; break;
      case TagClassInfo::Protocol:  ce->spec = Entry::Protocol;  break;
      case TagClassInfo::Category:  ce->spec = Entry::Category;  break;
    }
    ce->name     = tci->name;
    if (tci->kind==TagClassInfo::Protocol) 
    {
      ce->name+="-p";
    }
    addDocAnchors(ce,tci->docAnchors);
    TagInfo *ti  = new TagInfo;
    ti->tagName  = m_tagName;
    ti->fileName = tci->filename;
    ce->tagInfo = ti;
    ce->lang = tci->isObjC ? SrcLangExt_ObjC : SrcLangExt_Unknown;
    // transfer base class list
    if (tci->bases)
    {
      delete ce->extends;
      ce->extends = tci->bases; tci->bases = 0;
    }
    if (tci->templateArguments)
    {
      if (ce->tArgLists==0) 
      {
        ce->tArgLists = new QList<ArgumentList>;
        ce->tArgLists->setAutoDelete(TRUE);
      }
      ArgumentList *al = new ArgumentList;
      ce->tArgLists->append(al);
      
      QListIterator<QCString> sli(*tci->templateArguments);
      QCString *argName;
      for (;(argName=sli.current());++sli)
      {
        Argument *a = new Argument;
        a->type = "class";
        a->name = *argName;
        al->append(a);
      }
    }

    buildMemberList(ce,tci->members);
    root->addSubEntry(ce);
    tci = m_tagFileClasses.next();
  }

  // build file list
  TagFileInfo *tfi = m_tagFileFiles.first();
  while (tfi)
  {
    Entry *fe = new Entry;
    fe->section = guessSection(tfi->name);
    fe->name     = tfi->name;
    addDocAnchors(fe,tfi->docAnchors);
    TagInfo *ti  = new TagInfo;
    ti->tagName  = m_tagName;
    ti->fileName = tfi->filename;
    fe->tagInfo  = ti;
    
    QCString fullName = m_tagName+":"+tfi->path+stripPath(tfi->name);
    fe->fileName = fullName;
    //printf("new FileDef() filename=%s\n",tfi->filename.data());
    FileDef *fd = new FileDef(m_tagName+":"+tfi->path,
                              tfi->name,m_tagName,
                              tfi->filename
                             );
    FileName *mn;
    if ((mn=Doxygen::inputNameDict->find(tfi->name)))
    {
      mn->append(fd);
    }
    else
    {
      mn = new FileName(fullName,tfi->name);
      mn->append(fd);
      Doxygen::inputNameList->inSort(mn);
      Doxygen::inputNameDict->insert(tfi->name,mn);
    }
    buildMemberList(fe,tfi->members);
    root->addSubEntry(fe);
    tfi = m_tagFileFiles.next();
  }

  // build namespace list
  TagNamespaceInfo *tni = m_tagFileNamespaces.first();
  while (tni)
  {
    Entry *ne    = new Entry;
    ne->section  = Entry::NAMESPACE_SEC;
    ne->name     = tni->name;
    addDocAnchors(ne,tni->docAnchors);
    TagInfo *ti  = new TagInfo;
    ti->tagName  = m_tagName;
    ti->fileName = tni->filename;
    ne->tagInfo  = ti;

    buildMemberList(ne,tni->members);
    root->addSubEntry(ne);
    tni = m_tagFileNamespaces.next();
  }

  // build package list
  TagPackageInfo *tpgi = m_tagFilePackages.first();
  while (tpgi)
  {
    Entry *pe    = new Entry;
    pe->section  = Entry::PACKAGE_SEC;
    pe->name     = tpgi->name;
    addDocAnchors(pe,tpgi->docAnchors);
    TagInfo *ti  = new TagInfo;
    ti->tagName  = m_tagName;
    ti->fileName = tpgi->filename;
    pe->tagInfo  = ti;

    buildMemberList(pe,tpgi->members);
    root->addSubEntry(pe);
    tpgi = m_tagFilePackages.next();
  }

  // build group list, but only if config file says to include it
  //if (Config_getBool("EXTERNAL_GROUPS")) 
  //{
    TagGroupInfo *tgi = m_tagFileGroups.first();
    while (tgi)
    {
      Entry *ge    = new Entry;
      ge->section  = Entry::GROUPDOC_SEC;
      ge->name     = tgi->name;
      ge->type     = tgi->title;
      addDocAnchors(ge,tgi->docAnchors);
      TagInfo *ti  = new TagInfo;
      ti->tagName  = m_tagName;
      ti->fileName = tgi->filename;
      ge->tagInfo  = ti;
      
      buildMemberList(ge,tgi->members);
      root->addSubEntry(ge);
      tgi = m_tagFileGroups.next();
    }
  //}

  // build page list
  TagPageInfo *tpi = m_tagFilePages.first();
  while (tpi)
  {
    Entry *pe    = new Entry;
    pe->section  = Entry::PAGEDOC_SEC;
    pe->name     = tpi->name;
    pe->args     = tpi->title;
    addDocAnchors(pe,tpi->docAnchors);
    TagInfo *ti  = new TagInfo;
    ti->tagName  = m_tagName;
    ti->fileName = tpi->filename;
    pe->tagInfo  = ti;

    root->addSubEntry(pe);
    tpi = m_tagFilePages.next();
  }
}
示例#7
0
文件: CN_AC.cpp 项目: Kampbell/ISODE
	ReturnCode CN_AC::decode(NetworkBuffer& tsdu) {
		SPDU::control(tsdu);
		if (sli() == 0)
			return OK;
		ReturnCode rc = OK;
		while (tsdu.hasRemaining()) {
		/*			
		switch (code) {
			case PI_UDATA:
			if (!bool(pmask & PMASK_UDATA) || li() > 512)
			spkt.spdu_errno = SC_PROTOCOL;
			break;

			case PI_XDATA:
			if (!bool(pmask & PMASK_XDATA) || li() <= 512)
			spkt.spdu_errno = SC_PROTOCOL;
			break;

			default:
			if (bool(code < pi_table.length) && bool(pi_table[code])
			&& !bool(pmask & pi_table[code]))
			spkt.spdu_errno = SC_PROTOCOL;
			break;
			}
			if (code < pi_table.length && bool(pi_table[code])&& !bool(pi_table[code] & PMASK_PGI)) {
			if (li() > 0) {
			if (bool(pi_table[code] & PMASK_VARLEN)) {
			if (li() > pi_length[code]) {
			spkt.spdu_errno = SC_PROTOCOL;
			//							break;
			}
			} else
			if (li() != pi_length[code]) {
			spkt.spdu_errno = SC_PROTOCOL;
			//						break;
			}
			}
		}
		*/
			tsdu.markit();
			byte code = tsdu.get() & 0xFF;
			switch (code) {
			case PGI::PGI_CN_ID: {
				CN_ID pi(*this, tsdu);
				addMask(SMASK_CN_REF);
			}
				break;
			case PGI::PGI_CN_ITEMS: {
				CN_ITEMS pgi(*this, tsdu);
				addMask(SMASK_CN_REF);
			}
				break;
			case PI::PI_CALLED_SS: {
				CALLED_SS pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_reference.udata(length, data);
				addMask(SMASK_CN_REF);
			}
				break;
			case PI::PI_CALLING_SS: {
				//				case PI_AR_CALLED:
				//				case PI_AR_CALLING:
				CALLING_SS pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_reference.udata(length, data);
				addMask(SMASK_CN_REF);
			}
				break;
			case PI::PI_COMMON_REF: {
				//				case PI_AR_COMMON:
				COMMON_REF pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_reference.cdata(length, data);
				addMask(SMASK_CN_REF);
			}
				break;
			case PI::PI_ADD_INFO: {
				//				    case PI_AR_ADDT:
				ADD_INFO pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_reference.adata(length, data);
				addMask(SMASK_CN_REF);
			}
				break;
			case PI::PI_VERSION: {
				VERSION pi(tsdu);
				cn_version = pi.getValue();
				addMask(SMASK_CN_VRSN);
			}
				break;
			case PI::PI_USER_REQ: {
				USER_REQ pi(tsdu);
				cn_require = pi.getValue();
				addMask(SMASK_CN_REQ);
			}
				break;
			case PI::PI_ISN: {
				ISN pi(tsdu);
				cn_isn = pi.getValue();
				addMask(SMASK_CN_ISN);
			}
				break;
			case PI::PI_TOKEN: {
				if (si() != SPDU_AC) {
					//FIXME throw exception
				}
				TOKEN pi(tsdu);
				ac_token = pi.getValue();
				addMask(SMASK_AC_TOKEN);
			}
				break;
			case PI::PI_TOISN: {/* not supported yet */

			}
				break;
			case PI::PI_SSAP_CALLING: {
				SSAP_CALLING pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_callinglen = pi.pli();
				//FIXME check cn_callinglen == length
				memcpy(cn_calling, data, min(cn_callinglen, sizeof(cn_calling)));
				addMask(SMASK_CN_CALLING);
			}
				break;
			case PI::PI_SSAP_CALLED: {
				SSAP_CALLED pi(tsdu);
				int length = 0;
				const byte* data = pi.getValue(length);
				cn_calledlen = pi.pli();
				//FIXME check cn_callinglen == length
				memcpy(cn_called, data, min(cn_calledlen, sizeof(cn_calling)));
				addMask(SMASK_CN_CALLED);
			}
				break;
			case PI::PI_UDATA: {
				UDATA pi(tsdu);
				addMask(SMASK_UDATA_PGI);
				if (pi.pli() > 0) {
					// if (si() == SPDU_AB && !spkt.hasMask(SMASK_SPDU_AB)) {
					//     throw  SSAPException(SC_PROTOCOL);
					// } else
					if (pi.pli() > MAX_CONNECT_DATA_SIZE) {
						throw  Exception(AbortCode::SC_PROTOCOL);
					}
					int length = 0;
					const byte* data = pi.getValue(length);
					setData(length, data);
				}
			}
				break;
			case PI::PI_XDATA: {
				XDATA pi(tsdu);
				addMask(SMASK_UDATA_PGI);
				if (pi.pli() > 0) {
					// if (si() == SPDU_AB && !spkt.hasMask(SMASK_SPDU_AB)) {
					// throw  SSAPException(SC_PROTOCOL);
					//						} else
					if (pi.pli() > MAX_CONNECT_DATA_SIZE) {
						throw  Exception(AbortCode::SC_PROTOCOL);
					}
					int length = 0;
					const byte* data = pi.getValue(length);
					setData(length, data);
				}
			}
				break;
			default:
				tsdu.reset();
				goto EXIT;
			}
		}
EXIT:
	return rc;
	}
bool
TjSummaryReport::generateReport()
{
    QString text;

    text = i18n("<p><h1>Summary for Project %1 (Version %2)</h1></p><hr/>")
        .arg(project->getName())
        .arg(project->getVersion());

    int disabledScenarios = 0;
    for (ScenarioListIterator sli(project->getScenarioIterator()); *sli; ++sli)
        if (!(*sli)->getEnabled())
            disabledScenarios++;
    text += "<table>";
    text += i18n("<tr><td><b>Scenarios:</b></td><td>%1 (%2 disabled)</td></tr>")
        .arg(project->getMaxScenarios())
        .arg(disabledScenarios);

    int groups= 0;
    int workers = 0;
    int other = 0;
    for (ResourceListIterator rli(project->getResourceListIterator()); *rli;
         ++rli)
        if ((*rli)->hasSubs())
            groups++;
        else if ((*rli)->getEfficiency() > 0.0)
            workers++;
        else
            other++;
    text += i18n("<tr><td><b>Resources:</b></td>"
                 "<td>%1 (%2 Groups, %3 Workers, %4 Other)</td></tr>")
        .arg(project->resourceCount())
        .arg(groups).arg(workers).arg(other);

    int summaryAccounts = 0;
    int cost = 0;
    int revenue = 0;
    for (AccountListIterator ali(project->getAccountListIterator()); *ali;
         ++ali)
        if ((*ali)->hasSubs())
            summaryAccounts++;
        else if ((*ali)->getAcctType() == Cost)
            cost++;
        else
            revenue++;
    text += i18n("<tr><td><b>Accounts:</b></td>"
                 "<td>%1 (%2 Summary Accounts, %3 Cost Accounts, "
                 "%4 Revenue Accounts)</td></tr>")
        .arg(project->accountCount())
        .arg(summaryAccounts).arg(cost).arg(revenue);

    int containers = 0;
    int leafs = 0;
    int milestones = 0;
    for (TaskListIterator tli(project->getTaskListIterator()); *tli; ++tli)
        if ((*tli)->hasSubs())
            containers++;
        else if ((*tli)->isMilestone())
            milestones++;
        else
            leafs++;
    text += i18n("<tr><td><b>Tasks:</b></td><td>%1 "
                 "(%2 Containers, %3 Milestones, %4 Leaves)</td></tr>"
                "</table><hr/>")
        .arg(project->taskCount())
        .arg(containers).arg(milestones).arg(leafs);

    textBrowser->setText(text);

    return true;
}
示例#9
0
/*!
 * Clears the model.
 */
void ServerModel::resetModel()
{
    clear();

    QStandardItem *root = invisibleRootItem();

    QStandardItem *i = new QStandardItem();
    QStringList l;
    l << tr("Name") << tr("Host");
    setColumnCount(2);
    setHorizontalHeaderItem(0, i);
    setHorizontalHeaderLabels(l);


   QStringList netlist = smgr.networkList();

   if (netlist.contains("NONE")) { // "None" network is a section with servers not assigned to a network.
       QHash<QString,QString> sl = smgr.serverList("NONE");
       QHashIterator<QString,QString> i(sl);
       while (i.hasNext()) {
           i.next();
           // Key: Server name
           // Value: host:port|pass
           QString name = i.key();
           QString detail = i.value();

           QString host; // hostname with port, e.g. irc.network.org:6667
           host = detail.split('|')[0];

           QStandardItem *itemname = new QStandardItem(QIcon(":/options/gfx/server.png"), name);
           QStandardItem *itemhost = new QStandardItem(host);
           QList<QStandardItem*> list;
           list << itemname << itemhost;

           root->appendRow(list);
           hostmap.insert(host, indexFromItem(itemname));
           nonemap.insert(name, indexFromItem(itemname));

       }
   }

   for (int i = 0; i <= netlist.count()-1; ++i) {

       if (netlist[i] == "NONE")
           continue; // The "None" network already taken care of - ignore.

       QString data = smgr.defaultServer(netlist[i]);
       QString host = data.split('|')[0];

       QStandardItem *pname = new QStandardItem(QIcon(":/options/gfx/network.png"), netlist[i]); // parent name
       QStandardItem *phost = new QStandardItem(host); // parent host
       QList<QStandardItem*> list;
       list << pname << phost;

       root->appendRow(list);
       hostmap.insert(host, pname->index());
       netmap.insert(netlist[i], pname->index());

       QHash<QString,QString> sl = smgr.serverList(netlist[i]);
       QHashIterator<QString,QString> sli(sl);
       while (sli.hasNext()) {
           sli.next();
           // Key: Server name
           // Value: host:port|pass
           QString name = sli.key();
           if (name == "DEFAULT")
               continue; // The default value already taken care of, it's the address of parent item.
           QString detail = sli.value();
           QString host; // hostname with port, e.g. irc.network.org:6667
           host = detail.split('|')[0];

           QStandardItem *itemname = new QStandardItem(QIcon(":/options/gfx/server.png"), name); // parent name
           QStandardItem *itemhost = new QStandardItem(host); // parent host
           QList<QStandardItem*> list;
           list << itemname << itemhost;

           pname->appendRow(list);
           hostmap.insert(host, indexFromItem(itemname));
       }
   }
}