Exemple #1
0
        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
        }
Exemple #2
0
        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);
        }