private static int CompressGeneric(CCtxT *ctx, byte *src, byte *dst, int *srcSizePtr, int dstCapacity, int cLevel, LimitedOutputDirective limit) { if ((limit == LimitedOutputDirective.LimitedDestSize) && (dstCapacity < 1)) { return(0); // Impossible to store anything } if (*srcSizePtr > MaxInputSize) { return(0); // Unsupported input size (too large or negative) } ctx->End += *srcSizePtr; if (cLevel < 1) { cLevel = CLevelDefault; // note : convention is different from lz4frame, maybe something to review } cLevel = Math.Min(CLevelMax, cLevel); CParams cParam = ClTable[cLevel]; if (cParam.Strat == StratE.HC) { return(CompressHashChain( ctx, src, dst, srcSizePtr, dstCapacity, cParam.NbSearches, limit)); } return(CompressOptimal( ctx, src, dst, srcSizePtr, dstCapacity, (int)cParam.NbSearches, cParam.TargetLength, limit, cLevel == CLevelMax ? 1 : 0)); // ultra mode }
public bool create_Objects_logic() { CFATLogger.output_proc("create_Objects_logic ------->"); string sLogicName = ""; CLogic logic = null; CSite site; CParams objParams; CProduct objProduct; int nParamCnt = 0; int nProductCnt = 0; double dContractSize = 0; string sKey = ""; string sSiteName = ""; string sSymbol = ""; string[] sVals; string sLogicID = "NONE"; string sMode = "NONE"; try { foreach (Dictionary <string, string> dicLogicItem in m_configLogics) { sLogicName = dicLogicItem["name"]; sLogicID = dicLogicItem["logic_id"]; sMode = dicLogicItem["mode"]; logic = create_newLogic(sLogicName, sMode); logic.m_sLogicID = sLogicID; //create & set parameters objParams = new CParams(); nParamCnt = Convert.ToInt32(dicLogicItem["param_count"]); for (int i = 0; i < nParamCnt; i++) { sKey = string.Format("param_{0}", i + 1); sVals = dicLogicItem[sKey].Split(','); if (sVals.Length < 5) { CFATLogger.output_proc("Error : Invalid format logic params, ex : 'varName, varVal, [varStart], [varStep], [varEnd]'"); return(false); } objParams.addParam(sVals[0], sVals[1], sVals[2], sVals[3], sVals[4]); } logic.setParams(objParams); //create & set product nProductCnt = Convert.ToInt32(dicLogicItem["product_count"]); logic.m_products.Clear(); for (int i = 0; i < nProductCnt; i++) { objProduct = new CProduct(); sKey = string.Format("product_{0}_site", i + 1); sSiteName = dicLogicItem[sKey]; site = CSiteMng.getSite(sSiteName); objProduct.setSite(site); objProduct.setLogicID(sLogicID); sKey = string.Format("product_{0}_symbol", i + 1); sSymbol = dicLogicItem[sKey]; objProduct.setSymbol(sSymbol); dContractSize = site.getContractSize(sSymbol); objProduct.setContractSize(dContractSize); logic.addProduct(objProduct); } m_lstLogics.Add(logic); logic.publishParams();// } } catch { CFATLogger.output_proc("Error : create_Objects_logic"); return(false); } CFATLogger.output_proc("create_Objects_logic <-------"); return(true); }