コード例 #1
0
ファイル: RTDMonitor.cpp プロジェクト: FlavioFalcao/DDS-1
    std::list<std::string> getNodeChildren(const std::string& parentId) const
    {
      std::list<std::string> children;
      if (parentId.empty()) {
        if (this->dataSource_->modelRoot() != NULL) {
          QPersistentModelIndex pindex(this->model_->index(this->dataSource_->modelRoot(), 0));
          this->nodeIndexes_.insert(pindex);

          // Convert uint64 internal id to string.
          QString qstr = QString::number(pindex.internalId());

          children.push_back(qstr.toLocal8Bit().constData());
        }
      } else {
        TreeNode* parentNode = getNode(parentId);
          if (parentNode != NULL) {
          QList<TreeNode*> childNodes = parentNode->children();
          for (int i = 0; i < childNodes.count(); ++i) {
            QPersistentModelIndex pindex(this->model_->index(childNodes[i], 0));
            this->nodeIndexes_.insert(pindex);

            // Convert uint64 internal id to string.
            QString qstr = QString::number(pindex.internalId());

            children.push_back(qstr.toLocal8Bit().constData());
          }
        }
      }
      return children;
    }
コード例 #2
0
ファイル: main.c プロジェクト: Nurb432/plan9front
static void
fsdestroyfid(Fid *f)
{
	Aux *a = f->aux;

	if(ptype(f->qid.path) == Pinfo)
		freeinfo(pindex(f->qid.path));
	f->omode = -1;
	if(! a)
		return;
	if(a->fh != -1)
		if(CIFSclose(Sess, a->sp, a->fh) == -1)
			fprint(2, "%s: close failed fh=%d %r\n", argv0, a->fh);
	if(a->sh != -1)
		if(CIFSfindclose2(Sess, a->sp, a->sh) == -1)
			fprint(2, "%s: findclose failed sh=%d %r\n",
				argv0, a->sh);
	if(a->path)
		free(a->path);
	if(a->cache)
		free(a->cache);

	if(a == Auxroot)
		Auxroot = a->next;
	a->prev->next = a->next;
	a->next->prev = a->prev;
	if(a->next == a->prev)
		Auxroot = nil;
	if(a)
		free(a);
}
コード例 #3
0
ファイル: main.c プロジェクト: Nurb432/plan9front
static void
fsopen(Req *r)
{
	int rc;
	FInfo fi;
	Aux *a = r->fid->aux;

	a->end = a->off = 0;
	a->cache = emalloc9p(max(Sess->mtu, MTU));

	if(ptype(r->fid->qid.path) == Pinfo){
		if(makeinfo(pindex(r->fid->qid.path)) != -1)
			respond(r, nil);
		else
			respond(r, "cannot generate info");
		return;
	}

	if(r->fid->qid.type & QTDIR){
		respond(r, nil);
		return;
	}

	if(Sess->caps & CAP_NT_SMBS)
		rc = ntcreateopen(a, mapfile(a->path), r->ifcall.mode, 0777,
			0, 0, &fi);
	else
		rc = smbcreateopen(a, mapfile(a->path), r->ifcall.mode, 0777,
			0, 0, &fi);
	if(rc == -1){
		responderrstr(r);
		return;
	}
	respond(r, nil);
}
コード例 #4
0
ファイル: main.c プロジェクト: Nurb432/plan9front
static void
fsstat(Req *r)
{
	int rc;
	FInfo fi;
	Aux *a = r->fid->aux;

	if(ptype(r->fid->qid.path) == Proot)
		V2D(&r->d, r->fid->qid, "");
	else if(ptype(r->fid->qid.path) == Pinfo)
		dirgeninfo(pindex(r->fid->qid.path), &r->d);
	else if(ptype(r->fid->qid.path) == Pshare)
		V2D(&r->d, r->fid->qid, a->path +1);
	else{
		memset(&fi, 0, sizeof fi);
		if(Sess->caps & CAP_NT_SMBS)
			rc = T2queryall(Sess, a->sp, mapfile(a->path), &fi);
		else
			rc = T2querystandard(Sess, a->sp, mapfile(a->path), &fi);
		if(rc == -1){
			responderrstr(r);
			return;
		}
		I2D(&r->d, a->sp, a->path, &fi);
		if(Billtrog == 0)
			upd_names(Sess, a->sp, mapfile(a->path), &r->d);
	}
	respond(r, nil);
}
コード例 #5
0
ファイル: desc.c プロジェクト: lollek/imoria
void unquote(char *object_str)
{
  /*	{ Return string without quoted portion				}*/

  integer   pos0,pos1,pos2,olen;
  vtype     str1,str2;

  pos0 = pindex(object_str,'"');
  if (pos0 > 0) {
    pos1 = pindex(object_str,'~');
    pos2 = pindex(object_str,'|');
    olen = strlen(object_str);
    strncpy(str1,object_str,pos1); str1[pos1] = 0;
    strncpy(str2,&(object_str[pos2]),olen-pos2); str2[olen-pos2] = 0;
    sprintf(object_str,"%s%s",str1,str2);
  }

};
コード例 #6
0
ファイル: main.c プロジェクト: Nurb432/plan9front
static void
fsread(Req *r)
{
	vlong n, m, got;
	Aux *a = r->fid->aux;
	char *buf = r->ofcall.data;
	vlong len = r->ifcall.count;
	vlong off = r->ifcall.offset;

	if(ptype(r->fid->qid.path) == Pinfo){
		r->ofcall.count = readinfo(pindex(r->fid->qid.path), buf, len,
			off);
		respond(r, nil);
		return;
	}

	if(r->fid->qid.type & QTDIR){
		dirread9p(r, dirgen, a);
		respond(r, nil);
		return;
	}

	got = 0;
	n = Sess->mtu -OVERHEAD;
	do{
		if(len - got < n)
			n = len - got;
		m = CIFSread(Sess, a->sp, a->fh, off + got, buf + got, n, len);
		if(m != -1)
			got += m;
	} while(got < len && m >= n);

	r->ofcall.count = got;
	if(m == -1)
		responderrstr(r);
	else
		respond(r, nil);
}