diff -r 29df63210f13 -r 164b0547f8a5 sbsv2/raptor/python/raptor_timing.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/python/raptor_timing.py Mon Dec 07 12:50:33 2009 +0000 @@ -0,0 +1,168 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# timings API +# This API can be used to start and stop timings in order to measure performance +# +import time + +class Timing(object): + + @classmethod + def discovery_string(cls, object_type, count): + """ + Returns a tag that can be used to show what is about to be + "processed" + Parameters: + object_type - string + Type of object that is about to be "processed" in this task + count - int + Number of objects of input "object_type" are about to be + "processed" + Returns: + string + XML tag in the format that can be printed directly to a + Raptor log + """ + return "\n" + + + @classmethod + def start_string(cls, object_type, task, key): + """ + Returns a tag that can be used to show what is being "processed" + and the time it started + Parameters: + object_type - string + Type of object that is being "processed" in this task + task - string + What is being done with the object being "processed" + key - string + Unique identifier for the object being "processed" + Returns: + string + XML tag in the format that can be printed directly to a + Raptor log + """ + return "\n" + + + @classmethod + def end_string(cls, object_type, task, key): + """ + Returns a tag that can be used to show what was being "processed" + and the time it finished + Parameters: + object_type - string + Type of object that was being "processed" in this task + task - string + What was being done with the object being "processed" + key - string + Unique identifier for the object that was "processed" + Returns: + string + XML tag in the format that can be printed directly to a + Raptor log + """ + return "\n" + + + @classmethod + def custom_string(cls, tag = "duration", object_type = "all", task = "all", + key = "all", time = 0.0): + """ + Returns a custom tag in the 'progress' tag format + + Parameters: + tag - string + String to be used for the tag + object_type - string + Type of object that was being "processed" in this task + task - string + What was being done with the object being "processed" + key - string + Unique identifier for the object that was "processed" + time - float + The time to be included in the tag + Returns: + string + XML tag in the format that can be printed directly to a + Raptor log + """ + time_string = "time" + if tag == "duration": + time_string = "duration" + return "\n" + + + @classmethod + def extract_values(cls, source): + """ + Takes, as input, a single tag of the format returned by one of the + above progress functions. Will extract the attributes and + return them as a dictionary. Returns an empty dictionary {} + if the tag name is not recognised or there is a parse error + Parameters: + source - string + The input string from which extracted attributes are + required + Returns: + dictionary + Dictionary containing the attributes extracted from the + input string. Returns an empty dictionary {} if the + tag name is not recognised or there is a parse error + NB: This function will not work correctly if the 'source' variable + contains multiple tags + """ + import re + + attributes = {} + + try: + match = re.match(re.compile(".*object_type='(?P.*?)'"), + source) + attributes["object_type"] = match.group("object_type") + except AttributeError, e: + print e + attributes["object_type"] = "" + try: + match = re.match(re.compile(".*task='(?P.*?)'"), source) + attributes["task"] = match.group("task") + except AttributeError, e: + print e + attributes["task"] = "" + try: + match = re.match(re.compile(".*key='(?P.*?)'"), source) + attributes["key"] = match.group("key") + except AttributeError: + attributes["key"] = "" + try: + match = re.match(re.compile(".*time='(?P