blob: a9610932cf2dcda93132c4223a82048671326500 [file] [log] [blame]
/*
* Name: setMetricsData
* Input: Metrics structure
* Output: Metrics structure
* Return: void
* Description: This routine sets two values for laster metric collection.
* The first is specific to the individual command being
* processed and sets the lastTimeMark field for that command
* metric structure. The second value set is the command type
* for later update which is stored in the lastCommand filed of
* the input Metric structure. If a command type is passed
* which is not recognized, it sets the lastCommand field to
* INVALID.
* Calls: getTime()
* System:
* Author: M.L.Rivas
*
* Revision History:
*
* Date Name Revision
* ------- --------------- ------------------------------
* 27May99 Matthew Rivas Created
*
* Copyright 1999, Atlantic Aerospace Electronics Corp.
*/
#include <assert.h> /* for assert() */
#include "dataManagement.h" /* for primitive type definitions */
#include "getNextCommandCode.h" /* for Commandtype enumeration */
#include "metrics.h" /* for Metrics definition */
/*
* Function prototype
*/
extern Time getTime( void );
void setMetricsData( Metrics *metrics, /* metrics struct to update */
CommandType command ) /* command to update */
{ /* begin setMetricsData() */
Time temp; /* variable used to find current time */
assert( metrics );
assert( command == INIT || \
command == INSERT || \
command == QUERY || \
command == DELETE || \
command == NONE || \
command == INVALID );
/*
* Get the current time and set the appropriate command metric lastTimeMark
* field to this time. Also, set lastCommand field. If command is not an
* INSERT, QUERY, or DELETE, set lastCommand to INVALID which will prevent
* the updateMetricsData() routine from incorrectly altering any of the
* individual command metric statistics.
*/
temp = getTime();
if ( command == INSERT ) {
metrics->insertCommandMetric.lastTimeMark = temp;
metrics->lastCommand = INSERT;
} /* end of command == INSERT */
else if ( command == QUERY ) {
metrics->queryCommandMetric.lastTimeMark = temp;
metrics->lastCommand = QUERY;
} /* end of command == QUERY */
else if ( command == DELETE ) {
metrics->deleteCommandMetric.lastTimeMark = temp;
metrics->lastCommand = DELETE;
} /* end of command == DELETE */
else {
metrics->lastCommand = INVALID;
} /* end of inappropriate command */
return;
} /* end of setMetricsData() */