Пример #1
0
Resource *Roster::get_resource(const QString &full_jid, bool create) {
  QString jid, resource;
  int index = full_jid.indexOf("/");
  if(index == -1) {
    jid = full_jid;
    resource = "default";
  } else {
    jid = full_jid.left(index);
    resource = full_jid.mid(index + 1);
  }
  //qDebug() << "jid:" << jid << "resource:" << resource;
  RosterItem *item = get_item(jid);
  if(!item) {
    qDebug() << "no item for jid" + jid;
    return 0;
  }

  Resource *n = static_cast<Resource *>(item->child(resource));
  if(!n && create) {
    n = new Resource(resource, item);
    item->addChild(n);
  }

  return n;
}