예제 #1
0
        public int LoadRunID(string callsiteID)
        {
            Validity.Assert(null != CallsiteDataMap);
            CallsiteExecutionStateNode csNode = CallsiteDataMap.Find(x => x.ID == callsiteID);

            if (null != csNode)
            {
                return(csNode.RunID);
            }
            return(ProtoCore.DSASM.Constants.kInvalidIndex);
        }
예제 #2
0
        public string LoadData(string callsiteID)
        {
            Validity.Assert(null != CallsiteDataMap);
            CallsiteExecutionStateNode csNode = CallsiteDataMap.Find(x => x.ID == callsiteID);

            if (null != csNode)
            {
                return(csNode.Data);
            }
            return(null);
        }
예제 #3
0
        //public List<string> key { get; set; }
        //public List<string> value { get; set; }

        /// <summary>
        /// Stores the data given a callsite ID
        /// This does not increment the runID
        /// Adds a new entry if the callsite ID does not exist
        /// </summary>
        /// <param name="callsiteID"></param>
        /// <param name="dataObj"></param>
        public void Store(string callsiteID, Object dataObj)
        {
            Validity.Assert(null != CallsiteDataMap);
            string data = dataObj as string;

            CallsiteExecutionStateNode csNode = CallsiteDataMap.Find(x => x.ID == callsiteID);

            if (null != csNode)
            {
                // Modify node data if it exists
                csNode.Data = data;
            }
            else
            {
                // Add new entry otherwise
                CallsiteDataMap.Add(new CallsiteExecutionStateNode(callsiteID, data));
            }
        }
예제 #4
0
        /// <summary>
        /// Stores the data given a callsite ID
        /// This increments the runID
        /// Adds a new entry if the callsite ID does not exist
        /// Returns the runid associated with the callsiteID
        /// </summary>
        /// <param name="callsiteID"></param>
        /// <param name="dataObj"></param>
        public int StoreAndUpdateRunId(string callsiteID, Object dataObj)
        {
            Validity.Assert(null != CallsiteDataMap);
            string data = dataObj as string;
            CallsiteExecutionStateNode csNode = CallsiteDataMap.Find(x => x.ID == callsiteID);
            int runid = ProtoCore.DSASM.Constants.kInvalidIndex;

            if (null != csNode)
            {
                // Modify node data if it exists
                csNode.Data = data;
                runid       = ++csNode.RunID;
            }
            else
            {
                // Add new entry otherwise
                csNode = new CallsiteExecutionStateNode(callsiteID, data);
                CallsiteDataMap.Add(csNode);

                // A new entry means the run id is always 0
                runid = csNode.RunID;
            }
            return(runid);
        }
예제 #5
0
        /// <summary>
        /// Stores the data given a callsite ID
        /// This increments the runID
        /// Adds a new entry if the callsite ID does not exist
        /// Returns the runid associated with the callsiteID
        /// </summary>
        /// <param name="callsiteID"></param>
        /// <param name="dataObj"></param>
        public int StoreAndUpdateRunId(string callsiteID, Object dataObj)
        {
            Validity.Assert(null != CallsiteDataMap);
            string data = dataObj as string;
            CallsiteExecutionStateNode csNode = CallsiteDataMap.Find(x => x.ID == callsiteID);
            int runid = ProtoCore.DSASM.Constants.kInvalidIndex;
            if (null != csNode)
            {
                // Modify node data if it exists
                csNode.Data = data;
                runid = ++csNode.RunID;
            }
            else
            {
                // Add new entry otherwise
                csNode = new CallsiteExecutionStateNode(callsiteID, data);
                CallsiteDataMap.Add(csNode);

                // A new entry means the run id is always 0
                runid = csNode.RunID;
            }
            return runid;
        }