Perform trace factor reduction as a separate step
[lttv.git] / lttv / lttv / sync / event_processing_text.c
index 8471096a6d07d90af439843196d4321c76cde370..3d65bf54d64a64231ef4907b61f138e89d621e89 100644 (file)
@@ -1,19 +1,18 @@
 /* This file is part of the Linux Trace Toolkit viewer
- * Copyright (C) 2009 Benjamin Poirier <benjamin.poirier@polymtl.ca>
+ * Copyright (C) 2009, 2010 Benjamin Poirier <benjamin.poirier@polymtl.ca>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License Version 2 as
- * published by the Free Software Foundation;
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2.1 of the License, or (at
+ * your option) any later version.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+ * License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #define _GNU_SOURCE
@@ -38,8 +37,7 @@
 // Functions common to all processing modules
 static void initProcessingText(SyncState* const syncState, ...);
 static void destroyProcessingText(SyncState* const syncState);
-static void finalizeProcessingText(SyncState* const syncState);
-static void printProcessingStatsText(SyncState* const syncState);
+static AllFactors* finalizeProcessingText(SyncState* const syncState);
 static void writeProcessingTraceTimeOptionsText(SyncState* const syncState,
        const unsigned int i, const unsigned int j);
 static void writeProcessingTraceTraceOptionsText(SyncState* const syncState,
@@ -48,8 +46,6 @@ static void writeProcessingGraphVariablesText(SyncState* const syncState,
        const unsigned int i);
 
 // Functions specific to this module
-static void registerProcessingText() __attribute__((constructor (102)));
-
 static unsigned int readTraceNb(FILE* testCase);
 static void skipCommentLines(FILE* testCase);
 
@@ -59,7 +55,6 @@ static ProcessingModule processingModuleText = {
        .initProcessing= &initProcessingText,
        .destroyProcessing= &destroyProcessingText,
        .finalizeProcessing= &finalizeProcessingText,
-       .printProcessingStats= &printProcessingStatsText,
        .graphFunctions= {
                .writeVariables= &writeProcessingGraphVariablesText,
                .writeTraceTraceOptions= &writeProcessingTraceTraceOptionsText,
@@ -71,7 +66,7 @@ static ProcessingModule processingModuleText = {
 /*
  * Processing Module registering function
  */
-static void registerProcessingText()
+void registerProcessingText()
 {
        g_queue_push_tail(&processingModules, &processingModuleText);
 }
@@ -125,7 +120,7 @@ static void destroyProcessingText(SyncState* const syncState)
 
        if (syncState->stats && processingData->factors)
        {
-               g_array_free(processingData->factors, TRUE);
+               freeAllFactors(processingData->factors);
        }
 
        free(syncState->processingData);
@@ -139,12 +134,15 @@ static void destroyProcessingText(SyncState* const syncState)
  *
  * Args:
  *   syncState:    container for synchronization data.
+ *
+ * Returns:
+ *   AllFactors    synchronization factors for each trace pair
  */
-static void finalizeProcessingText(SyncState* const syncState)
+static AllFactors* finalizeProcessingText(SyncState* const syncState)
 {
        int retval;
        unsigned int* seq;
-       GArray* factors;
+       AllFactors* factors;
        ProcessingDataText* processingData= (ProcessingDataText*)
                syncState->processingData;
        FILE* testCase= processingData->testCase;
@@ -280,33 +278,8 @@ static void finalizeProcessingText(SyncState* const syncState)
        {
                processingData->factors= factors;
        }
-       else
-       {
-               g_array_free(factors, TRUE);
-       }
-}
-
-
-/*
- * Print statistics related to processing. Must be called after
- * finalizeProcessing.
- *
- * Args:
- *   syncState     container for synchronization data.
- */
-static void printProcessingStatsText(SyncState* const syncState)
-{
-       unsigned int i;
-
-       printf("Resulting synchronization factors:\n");
-       for (i= 0; i < syncState->traceNb; i++)
-       {
-               Factors* factors= &g_array_index(((ProcessingDataText*)
-                               syncState->processingData)->factors, Factors, i);
 
-               printf("\ttrace %u drift= %g offset= %g (%f)\n", i, factors->drift,
-                       factors->offset, factors->offset / CPU_FREQ);
-       }
+       return factors;
 }
 
 
This page took 0.024021 seconds and 4 git commands to generate.