static int agrega (ChainingHashMap *counters, ChainingHashMap *childs, char *name, int level, int fd, LinkedList *added) {

  Counter *counter;
  Childs *childInfo;
  char buffer[1000];
  char *childName;
  LinkedList *directChilds;

  if (level == 0 ) {
      counter = (Counter *) getChaining(counters, name);
      if (counter != NULL) {
        if (!existsElem(added, name, compareKeys)) {
          added = insertElemHead(added, name);
          sprintf(buffer, "%s:%d", name, counter->counter);
          writeLine(fd, buffer);
        }
      }
  } else {
      Childs *childsInfo = (Childs *)getChaining(childs, name);
      if (childsInfo) {
        directChilds = childsInfo->childs;
        while (directChilds) {
          agrega(counters, childs, getData(directChilds), level - 1, fd, added);
          directChilds = nextElem(directChilds);
        }
      }  
  }
  return 0;
}
Exemple #2
0
String Apollo::ValueList::toString()
{
  String sResult;

  for (ValueElem* e = 0; (e = nextElem(e)) != 0; ) {
    if (!sResult.empty()) { sResult += " "; }
    sResult += e->getString();
  }

  return sResult;
}
Exemple #3
0
Apollo::ValueElem* Apollo::ValueList::elemAtIndex(int nIndex)
{
  int nCnt = 0;
  for (Apollo::ValueElem* e = 0; (e = nextElem(e)) != 0; ) {
    if (nCnt == nIndex) {
      return e;
    }
    nCnt++;
  }
  return 0;
}
Exemple #4
0
long walkChain(DList *dl) {
	DList *l = dl;
	long len=0, blen=0;
	while ( (l = nextElem(l)) )
		len++;
	l = dl;
 	while ( (l = prevElem(l)) )
		blen++;
	assert(blen == len);
	return len;
}
Exemple #5
0
String Apollo::KeyValueList::toString()
{
  String sResult;

  for (Apollo::KeyValueElem* e = 0; (e = nextElem(e)) != 0; ) {
    String sValue = e->getString();
    sValue.escape(String::EscapeCRLF);
    sResult.appendf("%s=%s\n", _sz(e->getName()), _sz(sValue));
  }

  return sResult;
}
Exemple #6
0
void Apollo::KeyValueList::toList(List& l)
{
  for (Apollo::KeyValueElem* e = 0; (e = nextElem(e)) != 0; ) {
    Elem* f = new Elem(e->getKey());
    if (f != 0) {
      if (0) {
      } else if (e->getType() == Apollo::KeyValueElem::TypeInt) {
        *f = e->getInt();
      } else if (e->getType() == Apollo::KeyValueElem::TypeString) {
        *f = e->getString();
      }
      l.AddLast(f);
    }
  }
}