Exemple #1
0
    public void PerfTestUnsafe()
    {
        Stopwatch watch = new Stopwatch();
        string    result;

        GC.Collect();
        GC.WaitForPendingFinalizers();
        watch.Start();
        result = FastConcat.Concat(this.corpus);
        watch.Stop();
        Console.WriteLine("Unsafe Time: {0:0.000} ms", watch.Elapsed.TotalMilliseconds, result[0]);
        Console.WriteLine("Memory usage: {0:0.000} MB", Environment.WorkingSet / 1000000.0);
        Console.WriteLine();
    }
Exemple #2
0
    static void Main(string[] args)
    {
        FastConcat <int> i = new FastConcat <int>();

        i.Add(new int[] { 0, 1, 2, 3, 4 });
        Console.WriteLine(i[0]);
        i.Add(new int[] { 5, 6, 7, 8, 9 });
        Console.WriteLine(i[4]);
        Console.WriteLine("Enumerator:");
        foreach (int val in i)
        {
            Console.WriteLine(val);
        }
        Console.ReadLine();
    }
Exemple #3
0
    public PerfTestHarness(List <string> corpus)
    {
        this.corpus = corpus;
        // Warm up the JIT
        // Note that `result` is discarded. We reference it via 'result[0]' as an
        // unused paramater to my prints to be absolutely sure it doesn't get
        // optimized out. Cheap hack, but it works.
        string result;

        result = FastConcat.Concat(this.corpus);
        Console.WriteLine("Fast warmup done", result[0]);
        result = string.Concat(this.corpus.ToArray());
        Console.WriteLine("Safe warmup done", result[0]);
        GC.Collect();
        GC.WaitForPendingFinalizers();
    }
        /// <summary>
        /// Gets the collateral for obligor.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public GetCollateralForObligorResponse GetCollateralForObligor(GetCollateralForObligorRequest request)
        {
            ClientContext ctx = GetClientContext(request.User, request.Password);
            string errors = null;
            string outputBlock = string.Empty;
            int noOfRequery = 0;
            REQUEST_0189_FIELD outputField = new REQUEST_0189_FIELD { x189A_DESC = string.Empty, x189A_MODEL_DESC = string.Empty, x189A_OBLN_ITEM = string.Empty, x189A_TYPE = string.Empty };
            REQUEST_0189_FIELD[] outputs = new REQUEST_0189_FIELD[120];
            for (int i = 0; i < 120; i++)
            {
                outputs[i] = outputField;
            }
            var getCollateralForDocIn = new InquiryServicesContext.GetCollateralForObligorInDocument
            {
                LUW_BANK = request.BankId,
                LUW_BATCH_ID = request.BatchID,
                LUW_ERROR_MESSAGES = request.Errors,
                LUW_HEADER_RESTRICTIONS = Constants.LUW_HEADER_REST_CALL_APPL,
                LUW_ID = request.Luw,
                LUW_ITEM_NBR = request.ItemNumber,
                LUW_LENGTH = request.DataLength,
                LUW_OBLIGATION = request.ObligationNumber,
                LUW_OBLIGOR = request.ObligorNumber,
                LUW_REQUEST_CODE = request.RestartRequestCode,
                SEG_COUNTER = request.Segment
            };


            try
            {
                var collateralList = GetCollateralArrayForObligor(ref ctx, ref errors, ref outputs, getCollateralForDocIn);

                //Need to requery for more data if segcounter is populated
                bool isRequery = int.TryParse(getCollateralForDocIn.SEG_COUNTER, out noOfRequery);
                if (isRequery && noOfRequery > 0)
                {
                    //Concat the results
                    FastConcat<CollateralDetail> collateralObligorArray = new FastConcat<CollateralDetail>();
                    collateralObligorArray.Add(collateralList);

                    while (noOfRequery > 0)
                    {
                        //Set a new requery LUW ID
                        getCollateralForDocIn.LUW_ID = Constants.GET_COLL_OBLGR_REQUERY_LUW_ID;
                        var reQueryCollarteralList = GetCollateralArrayForObligor(ref ctx, ref errors, ref outputs, getCollateralForDocIn);

                        //Append requery collateral list to the concat list
                        collateralObligorArray.Add(reQueryCollarteralList);
                        isRequery = int.TryParse(getCollateralForDocIn.SEG_COUNTER, out noOfRequery);
                    }

                    return new GetCollateralForObligorResponse() { CollateralList = collateralObligorArray.ToList(), Errors = errors };

                }


                return new GetCollateralForObligorResponse() { CollateralList = collateralList.ToList(), Errors = errors };

            }

            catch (Microsoft.HostIntegration.TI.CustomTIException Ex)
            {
                return HandleHISException<GetCollateralForObligorResponse>(Ex, request, "GetCollateralForObligor");
            }
            catch (Exception ee)
            {
                string msg = ee.Message;
                throw;
            }

        }