예제 #1
0
파일: main.cpp 프로젝트: mgaldzic/antimony
int main(int argc, char *argv[])
{

#ifdef SBW_INTEGRATION
  bool sbwon = true;

	static const char* Name("QTAntimony");
	static const char* ServiceName("QTAntimony");
	static const char* DisplayName("QTAntimony 1.0");
	static const char* HelpString("Antimony analyzer");
	static const char* CategoryName("/Analysis");

	SBWCreateModuleImpl( Name, DisplayName, SBW_UniqueModule, HelpString);

	SBWModuleImplAddService( ServiceName, DisplayName, CategoryName, HelpString);

	SBWModuleImplSetHandler( ServiceName, doAnalysis, 0, "void doAnalysis(string)", 1, HelpString);
	
	int sbwModuleIndex = -1;
	try 
	{
		// register if neccessary
		for (int arg=1; arg<argc; arg++) 
		{
			std::string sArg(argv[arg]);
			if (sArg == "-sbwregister" || sArg == "--sbwregister")
			{
				SBWModuleImplRun(argc, argv, 1);
				return 0;
			}
			else if (sArg == "-sbwregister" || sArg == "--sbwregister")
				sbwModuleIndex = arg;
		}
		// otherwise enable SBW service
		SBWModuleImplEnableServices();
	}
	catch (...) 
	{
		sbwon = false;
	}

#endif

	qInstallMsgHandler(myMessageOutput);
	QTAntimony a(argc, argv);
  //QString sheet = a.styleSheet();
  //sheet.append("QMessageBox { messagebox-text-interaction-flags: 1 }");
  //a.setStyleSheet(sheet);

#ifdef SBW_INTEGRATION
	// install an event filter that will display a new window when SBML is loaded
	if (sbwon) {
		a.installEventFilter(&a);
	}
	else {
		a.SetUseSBW(false);
	}
	for (int arg=1; arg<argc; arg++) {
		if (sbwModuleIndex != arg) a.OpenFile(argv[arg]);
	}
#else
  a.SetUseSBW(false);
#endif
  if (argc==1) {
		a.NewWindow();
	}
  else {
    a.NewWindow(argv[1]);
  }

	return a.exec();
}
예제 #2
0
BOOL CCoderParamInfo::ParseParam(int iArgNum, char** pszParams)
{
    if (iArgNum <= 1)
    {
        return FALSE;
    }
    for (int i = 1; i < iArgNum; i++)
    {
        BOOL bType = m_bJAVA || m_bAS || m_bCPP;
        CString sArg(pszParams[i]);

        if (!m_bHelp)
        {
            m_bHelp = !sArg.CompareNoCase("/h");
            if (m_bHelp)
            {
                return TRUE;
            }
        }

        if (!m_bSilence)
        {
            m_bSilence = !sArg.CompareNoCase("/s");
        }

        // determine output type
        if (!bType)
        {
            m_bJAVA = !sArg.CompareNoCase("/java");
            m_bAS   = !sArg.CompareNoCase("/as");
            m_bCPP  = !sArg.CompareNoCase("/cpp");
        }

        // get config file full path
        if (!m_bConfig)
        {
            m_bConfig = !sArg.CompareNoCase("/config");
            if (m_bConfig)
            {
                if (i + 1 < iArgNum)
                {
                    m_strConfigFullName = pszParams[++i];
                    continue;
                }
                else
                {
                    return FALSE;
                }
            }
        }

        // get output dir
        if (!m_bOutput)
        {
            m_bOutput = !sArg.CompareNoCase("/out");
            if (m_bOutput)
            {
                if (i + 1 < iArgNum)
                {
                    m_strOutputPath = pszParams[++i];
                    continue;
                }
                else
                {
                    return FALSE;
                }
            }
        }

        if ( 0==sArg.CompareNoCase("/net") )
        {
            if (i + 1 < iArgNum)
            {
                m_strCharsetNet = pszParams[++i];
                m_nCharsetNet   = GetCharsetIndex(m_strCharsetNet.GetString());
                continue;
            }
            else
            {
                return FALSE;
            }
        }

        auto nRet=sArg.CompareNoCase("/host");
        if (0==nRet)
        {
            if (i + 1 < iArgNum)
            {
                m_strCharsetHost = pszParams[++i];
                m_nCharsetHost   = GetCharsetIndex(m_strCharsetHost.GetString());
                continue;
            }
            else
            {
                return FALSE;
            }
        }

        if (!m_bSaveEnDe)
        {
            m_bSaveEnDe = !sArg.CompareNoCase("/ENDN");
        }

        if (!m_bCliEnDe)
        {
            m_bCliEnDe = !sArg.CompareNoCase("/CLI");
        }

        if (0 == m_nSidOffset && !sArg.CompareNoCase("/SID")) {
            m_nSidOffset = atoi(pszParams[++i]);
        }
    }

    return TRUE;
}