Beispiel #1
0
        /// <summary>
        /// Extracts runtimes of each task
        /// </summary>
        /// <returns>
        /// Runtimes of each task
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static List <float> GetTaskRuntimes(string configFileContent)
        {
            Regex         runtimesRx = new Regex($@"TASK-ID,RUNTIME(?:{FileParser.NewLineRx})(?:\s*\d+,(\d+(?:\.\d+)?)(?:{FileParser.NewLineRx})?)+");
            List <string> runtimes   = FileParser.GetCaptureValues(configFileContent, runtimesRx);

            return(ListConverter.StringToFloat(runtimes));
        }
Beispiel #2
0
        /// <summary>
        /// Extracts frequencies of provided processors.
        /// </summary>
        /// <returns>
        /// Frequencies of processors
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static List <float> GetProcessorFrequencies(string configFileContent)
        {
            Regex         frequenciesRx = new Regex($@"PROCESSOR-ID,FREQUENCY(?:{FileParser.NewLineRx})(?:\s*\d+,(\d+(?:\.?\d+)?)(?:{FileParser.NewLineRx})?)+");
            List <string> frequencies   = FileParser.GetCaptureValues(configFileContent, frequenciesRx);

            return(ListConverter.StringToFloat(frequencies));
        }
Beispiel #3
0
        /// <summary>
        /// Extracts coefficient of a quadratic formula to compute
        /// the energy consumed per second by a processor.
        /// </summary>
        /// <returns>
        /// Coefficients of a quadratic formula
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static List <float> GetCoefficients(string configFileContent)
        {
            Regex         coefficientsRx = new Regex($@"COEFFICIENT-ID,VALUE(?:{FileParser.NewLineRx})(?:\s*\d+,(-?\d+(?:\.?\d+)?)(?:{FileParser.NewLineRx})?)+");
            List <string> coefficients   = FileParser.GetCaptureValues(configFileContent, coefficientsRx);

            return(ListConverter.StringToFloat(coefficients));
        }
Beispiel #4
0
        /// <summary>
        /// Extracts a reference frequency used to determine runtime of each task
        /// </summary>
        /// <returns>
        /// Reference frequency or -1 if it is not provided in a configuration file
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static float GetRuntimeReferenceFrequency(string configFileContent)
        {
            Regex         runtimeReferenceFrequencyRx = new Regex(@"RUNTIME-REFERENCE-FREQUENCY,(\d+(?:\.\d+)?)");
            List <string> captureValues = FileParser.GetCaptureValues(configFileContent, runtimeReferenceFrequencyRx);

            if (captureValues.Count != 0)
            {
                return(float.Parse(captureValues.First()));
            }

            return(-1);
        }
Beispiel #5
0
        /// <summary>
        /// Extracts the maximum program duration
        /// </summary>
        /// <returns>
        /// Reference the maximum duration or -1 if it is not provided in a configuration file
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static float GetMaximumDuration(string configFileContent)
        {
            Regex         maximumDurationRx = new Regex(@"PROGRAM-MAXIMUM-DURATION,(\d+(?:\.\d+)?)");
            List <string> captureValues     = FileParser.GetCaptureValues(configFileContent, maximumDurationRx);

            if (captureValues.Count != 0)
            {
                return(float.Parse(captureValues.First()));
            }

            return(-1);
        }
Beispiel #6
0
        /// <summary>
        /// Extracts ids of provided processors.
        /// </summary>
        /// <returns>
        /// Ids of used processors
        /// </returns>
        /// <param name="configFileContent">Content of a configuration file</param>
        public static List <string> GetProcessorIds(string configFileContent)
        {
            Regex processorIdsRx = new Regex($@"PROCESSOR-ID,FREQUENCY(?:{FileParser.NewLineRx})(?:\s*(\d+),\d+\.\d+(?:{FileParser.NewLineRx})?)+");

            return(FileParser.GetCaptureValues(configFileContent, processorIdsRx));
        }