コード例 #1
0
ファイル: udunits2.c プロジェクト: Unidata/UDUNITS-2
static int
getOutputRequest(void)
{
    int		success = 0;

    if (_cmdWant) {
        static int      initialized = 0;

        if (initialized) {
            success = 1;
        }
        else {
            (void)strncpy(_wantSpec, _cmdWant, sizeof(_wantSpec));
            _wantSpec[sizeof(_wantSpec)-1] = 0;

            success = decodeOutput(_wantSpec);
            initialized = 1;
        }
    }
    else {
        for (;;) {
            int	nbytes = getSpec("You want: ", _wantSpec, sizeof(_wantSpec));

            if (nbytes < 0)
                break;

            success = decodeOutput(_wantSpec);

            if (success)
                break;
        }
    }

    return success;
}
コード例 #2
0
ファイル: decodeflowcontext.cpp プロジェクト: miko53/graphia
CProcessInstance* CDecodeFlowContext::readInstanceOfContextProcess ( const QDomElement& data, CProcessContext* processContext )
{
  CProcessInstance* processInstance = NULL; 
  bool bOk = true;
  QDomElement id = data.firstChildElement("id");
  QDomElement name = data.firstChildElement("name");
  QDomElement hasChanged = data.firstChildElement("hasChanged");
  QDomElement implements = data.firstChildElement("implements");
  int implementsID;
  CProcessImplementation* implementsProcess = NULL;  
  
  if (!id.isNull() && !name.isNull() && !hasChanged.isNull() && !implements.isNull())
  {
    processInstance = new CProcessInstance();
    processInstance->setID(id.text().toInt());
    processInstance->setName(name.text());
    processInstance->setNameHasChanged(hasChanged.text().toInt());
 
    implementsID = implements.attribute("id").toInt();
    implementsProcess = m_pItemFactory->getProcessFactory()->getImplementationProcess(implementsID);
    if (implementsProcess != NULL) //shall not be null because exist always for a context diagram ToCheck
      processInstance->setImplementedProcess(implementsProcess);
    else
    {
      delete processInstance;
      processInstance = NULL;
    }

    //read input flow list
    QDomElement inputList = data.firstChildElement("input-list");
    CDecodeInputOutputListOfProcessInstance decodeInput(processContext, processInstance, true);
    
    bOk = decodeInput.searchInXmlList(inputList, "input", &decodeInput);
    if (bOk)
    {
      //read output flow list
      QDomElement outputList = data.firstChildElement("output-list");
      CDecodeInputOutputListOfProcessInstance decodeOutput(processContext, processInstance, false);
      bOk = decodeOutput.searchInXmlList(outputList, "output", &decodeOutput);
    }
    
    if (!bOk)
    {
      delete processInstance;
      processInstance = NULL;
    }
    
  }
  return processInstance;
}