Example #1
0
CGeneratorContext::~CGeneratorContext()
{
	if (mMainTask)
		delete mMainTask;
	ReleaseFunctions();
	ReleaseGlobalVars();
}
Example #2
0
int ApiFunctionMgr::LoadFundionFromXml(std::string filePath)
{
    FILE_LOG_INFO << "[ApiFunctionMgr::LoadFundionFromXml]start.filePath=" << filePath;
    tinyxml2::XMLDocument doc;
    int iRet = 0;
    try{
        iRet = doc.LoadFile(filePath.c_str());
    }catch(...){
        FILE_LOG_ERROR << "[ApiFunctionMgr::LoadFundionFromXml]LoadFile error.";
        return -1;
    }

    if(iRet){
        FILE_LOG_ERROR << "[ApiFunctionMgr::LoadFundionFromXml]LoadFile faild.filePath=" << filePath
            << ", errorinfo=" << doc.GetErrorStr1() << " " << doc.GetErrorStr2();
        return -2;
    }

    ReleaseFunctions();

    tinyxml2::XMLElement* ele = doc.FirstChildElement();
    while(ele){
        FunctionItem *funcItem = new FunctionItem();
        //memset(funcItem, 0, sizeof(*funcItem));

        iRet = AssigneFunctionItem(funcItem, ele);
        if(iRet >= 0){
            functions.push_back(funcItem);
        }else{
            FILE_LOG_ERROR << "[ApiFunctionMgr::LoadFundionFromXml]AssigneFunctionItem faild.iRet=" << iRet;
            delete funcItem;
        }
        
        ele = static_cast<tinyxml2::XMLElement*>(ele->NextSibling());
    }

    return functions.size();
}