Exemple #1
0
ENTRYPOINT
I ipcConnectNP(A afunc, A aname, A aprotocol)
{
  C *serviceName=getString(aname);
  S protocolSym=getSymbol(aprotocol);
  int protocolidx;
  AipcService *nSrv;

  InitializeIfNeeded();
  ipcWarn(0,"%t ipcConnectN:\n");

  if (!serviceName||!protocolSym||!QF(afunc))return -1;

  AipcHostPortProtocol *ahpp=new AipcHostPortProtocol(serviceName);
  ahpp->protocol(protocolSym->n);

//   const C *hostName=ahpp->host();
//   I port=ahpp->port();

  ipcWarn(0,"%t ipcConnectN: name:%s host:%s port:%d protocol:%s\n",
	serviceName,ahpp->host(),ahpp->port(),ahpp->protocol());

  protocolidx=lookupProtocol(protocolSym);
  switch(protocolidx) {
  case 0: nSrv=new pA_Connection(*ahpp,afunc); break;
  case 1: nSrv=new pRaw_Connection(*ahpp,afunc); break;
  case 4: nSrv=new pIpc_Connection(*ahpp,afunc); break;
  case 6: nSrv=new pString_Connection(*ahpp,afunc); break;
  case 7: nSrv=new pSimple_Connection(*ahpp,afunc); break;
  default: /* unknown protocol */
    Warn("%t ipcConnectN: unknown protocol:%s\n",protocolSym->n);
    return -1;
  }
  return nSrv->handle();
}
Exemple #2
0
ENTRYPOINT
I ipcListenNP(A afunc, A aname, A aprotocol)
{
  C *serviceName=getString(aname);
  S protocolSym=getSymbol(aprotocol);
  int protocolidx;
  AipcListener *nLstn;

  InitializeIfNeeded();
  ipcWarn(0,"%t ipcListenN:\n");

  if(!serviceName||!QF(afunc))return -1;

  AipcHostPortProtocol *ahpp=new AipcHostPortProtocol(serviceName);

//   const C *hostName=ahpp->host();
  I port=ahpp->port();

  ipcWarn(0,"%t ipcListenN: name:%s port:%d protocol:%s\n",serviceName,
	  port,protocolSym->n);

  protocolidx=lookupProtocol(protocolSym);
  switch(protocolidx) {
  case 0: nLstn=new pA_Listener(*ahpp,afunc); break;
  case 1: nLstn=new pRaw_Listener(*ahpp,afunc); break;
  case 4: nLstn=new pIpc_Listener(*ahpp,afunc); break;
  case 6: nLstn=new pString_Listener(*ahpp,afunc); break;
  case 7: nLstn=new pSimple_Listener(*ahpp,afunc); break;
  default: /* unknown protocol */
    Warn("%t ipcListenN: unknown protocol:%s\n",protocolSym->n);
    return -1;
  }
  return nLstn->handle();
}
Exemple #3
0
Z I dr(A a,I f)
{
  XA;
  A z,*ap=(A*)a->p,w;
  if(!an||at!=Et||fsy(a))R ic(a); /* ic_or_copy(a) */
  w=*ap;
  Q(QF(w),9);
  if(!ar)R ic(w);  /* ic_or_copy(w) */
  {
    XW;
    I i=an,n=0,t;
    C *p;
    if(f){Q(ar>1,7)V0 n=*wd;}
    else{Q(ar+wr>MAXR,13)mv(ad+ar,wd,wr);}
    for(;--i;)
    {
      Q(!QA(a=ap[i])||(t=a->t)>Et,9);
      if(wt!=t&&a->n)
	if(f&&!n)wt=t;
	else{Q(wt>Ft||t>Ft,6)wt=Ft;}
      if(wr!=a->r){Q(!f||wr>1||a->r,7)*a->d=1;}
      Q(cm(wd+f,a->d+f,wr-f),11);
      if(f)n+=*a->d;
    }
    W(ga(wt,f?wr:ar+wr,f?n*tr(wr-1,wd+1):an*wn,f?wd:ad));
    if(f)*z->d=n;
    p=(C*)z->p;
    DO(an,a=ap[i];
       p=(*(a->t==wt?(C *(*)(I,F *,I *,I))tmv:i2f))(wt,(F *)p,a->p,a->n));
    R(I)z;
  }
}
Exemple #4
0
Z I dp(A a)
{
  I k,d=0;
  if(QF(a))R -1;
  if(a->t<Et)R 0;
  DO(a->n,if((k=1+dp((A)a->p[i]))>d)d=k);
  R d;
}
Exemple #5
0
I ea(I f,A a,A w)
{
  A z,*p;I at,k,wt=0,j=0;
  C *ap,*wp=0;
  if(w)ND2 else ND1;
  at=a->t,k=a->r?Tt(at,1):0,ap=(C*)a->p;
  if(w)
    if(wt=w->t,wp=(C*)w->p,j=w->r?Tt(wt,1):0,k&&j)
    {
      Q(a->r!=w->r,7);
      Q(cm(a->d,w->d,a->r),8);
    }
  W(gd(Et,j?w:a));
  *--Y=zr(z),p=(A*)z->p;
  DO(z->n,
     if(at<Et||(a=*(A*)ap,QF(a)))a=gc(at,0,1,0,(I*)ap);
     else ic(a);
Exemple #6
0
ENTRYPOINT
I ipcConnectNHPP(A afunc, A aname, A ahost, I port, A aprotocol)
{
  C *serviceName=getString(aname);
  C *hostName=getString(ahost);
  S protocolSym=getSymbol(aprotocol);
  int protocolidx;
  AipcService *nSrv;

  InitializeIfNeeded();
  ipcWarn(0,"%t ipcConnectNHPP:\n");

  if (!serviceName||!hostName||!protocolSym||!QF(afunc))return -1;

  ipcWarn(0,"%t ipcConnectNHPP: name:%s host:%s port:%d protocol:%s\n",
	serviceName,hostName,port,protocolSym->n);

  protocolidx=lookupProtocol(protocolSym);
  switch(protocolidx) {
  case 0: nSrv=new pA_Connection(serviceName,hostName,port,afunc); break;
  case 1: nSrv=new pRaw_Connection(serviceName,hostName,port,afunc); break;
  case 2: 
    Warn("%t ipcConnectHPP: unsupported protocol:%s\n",protocolSym->n);
    return -1;
    break;
  case 4: nSrv=new pIpc_Connection(serviceName,hostName,port,afunc); break;
  case 5: 
    Warn("%t ipcConnectHPP: unsupported protocol:%s\n",protocolSym->n);
    return -1;
    break;
  case 6: nSrv=new pString_Connection(serviceName,hostName,port,afunc); break;
  case 7: nSrv=new pSimple_Connection(serviceName,hostName,port,afunc); break;
  default: /* unknown protocol */
    Warn("%t ipcConnectHPP: unknown protocol:%s\n",protocolSym->n);
    return -1;
  }
  return nSrv->handle();
}
Exemple #7
0
Z void rake_2p(A a,A z){if(QF(a)||Et!=a->t||fsy(a)&&a->n)
{z->p[z->n++]=QA(a)?ic(a):(I)a;R;}if(!a->n)R;DO(a->n,rake_2p((A)a->p[i],z));R;}
Exemple #8
0
Z I rake_1p(A a,I cd,I *pd){I z=0;if(QF(a)||Et!=a->t||fsy(a)&&a->n)R 1;
if(!a->n)R 0;if(cd>=*pd)*pd=cd+1;DO(a->n,z+=rake_1p((A)a->p[i],cd+1,pd));R z;}