event);
static GArray* finalizeMatchingDistributor(SyncState* const syncState);
static void printMatchingStatsDistributor(SyncState* const syncState);
-static void writeMatchingGraphsPlotsDistributor(SyncState* const syncState,
- const unsigned int i, const unsigned int j);
-static void writeMatchingGraphsOptionsDistributor(SyncState* const syncState,
- const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTraceForePlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTraceBackPlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTraceOptionsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTimeForePlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTimeBackPlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
+static void writeMatchingTraceTimeOptionsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j);
// Functions specific to this module
-static void registerMatchingDistributor() __attribute__((constructor (101)));
-
void gfInitModule(gpointer data, gpointer user_data);
void gfDestroyModule(gpointer data, gpointer user_data);
void gfMatchEvent(gpointer data, gpointer user_data);
.matchEvent= &matchEventDistributor,
.finalizeMatching= &finalizeMatchingDistributor,
.printMatchingStats= &printMatchingStatsDistributor,
- .writeMatchingGraphsPlots= &writeMatchingGraphsPlotsDistributor,
- .writeMatchingGraphsOptions= &writeMatchingGraphsOptionsDistributor,
+ .graphFunctions= {
+ .writeTraceTraceForePlots=
+ &writeMatchingTraceTraceForePlotsDistributor,
+ .writeTraceTraceBackPlots=
+ &writeMatchingTraceTraceBackPlotsDistributor,
+ .writeTraceTraceOptions= &writeMatchingTraceTraceOptionsDistributor,
+ .writeTraceTimeForePlots= &writeMatchingTraceTimeForePlotsDistributor,
+ .writeTraceTimeBackPlots= &writeMatchingTraceTimeBackPlotsDistributor,
+ .writeTraceTimeOptions= &writeMatchingTraceTimeOptionsDistributor,
+ },
};
/*
* Matching module registering function
*/
-static void registerMatchingDistributor()
+void registerMatchingDistributor()
{
g_queue_push_tail(&matchingModules, &matchingModuleDistributor);
}
* i: first trace number
* j: second trace number, garanteed to be larger than i
*/
-static void writeMatchingGraphsPlotsDistributor(SyncState* const syncState,
+static void writeMatchingTraceTraceForePlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j)
+{
+ MatchingDataDistributor* matchingData= syncState->matchingData;
+
+ g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
+ &(struct GraphAggregate) {offsetof(MatchingModule,
+ graphFunctions.writeTraceTraceForePlots), i, j});
+}
+
+
+/*
+ * Call the distributed graph lines functions (when they exist).
+ *
+ * Args:
+ * syncState: container for synchronization data
+ * i: first trace number
+ * j: second trace number, garanteed to be larger than i
+ */
+static void writeMatchingTraceTraceBackPlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j)
+{
+ MatchingDataDistributor* matchingData= syncState->matchingData;
+
+ g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
+ &(struct GraphAggregate) {offsetof(MatchingModule,
+ graphFunctions.writeTraceTraceBackPlots), i, j});
+}
+
+
+/*
+ * Call the distributed graph lines functions (when they exist).
+ *
+ * Args:
+ * syncState: container for synchronization data
+ * i: first trace number
+ * j: second trace number, garanteed to be larger than i
+ */
+static void writeMatchingTraceTimeForePlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j)
+{
+ MatchingDataDistributor* matchingData= syncState->matchingData;
+
+ g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
+ &(struct GraphAggregate) {offsetof(MatchingModule,
+ graphFunctions.writeTraceTimeForePlots), i, j});
+}
+
+
+/*
+ * Call the distributed graph lines functions (when they exist).
+ *
+ * Args:
+ * syncState: container for synchronization data
+ * i: first trace number
+ * j: second trace number, garanteed to be larger than i
+ */
+static void writeMatchingTraceTimeBackPlotsDistributor(SyncState* const
+ syncState, const unsigned int i, const unsigned int j)
+{
+ MatchingDataDistributor* matchingData= syncState->matchingData;
+
+ g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
+ &(struct GraphAggregate) {offsetof(MatchingModule,
+ graphFunctions.writeTraceTimeBackPlots), i, j});
+}
+
+
+/*
+ * Call the distributed graph options functions (when they exist).
+ *
+ * Args:
+ * syncState: container for synchronization data
+ * i: first trace number
+ * j: second trace number, garanteed to be larger than i
+ */
+static void writeMatchingTraceTraceOptionsDistributor(SyncState* const syncState,
const unsigned int i, const unsigned int j)
{
MatchingDataDistributor* matchingData= syncState->matchingData;
g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
&(struct GraphAggregate) {offsetof(MatchingModule,
- writeMatchingGraphsPlots), i, j});
+ graphFunctions.writeTraceTraceOptions), i, j});
}
* i: first trace number
* j: second trace number, garanteed to be larger than i
*/
-static void writeMatchingGraphsOptionsDistributor(SyncState* const syncState,
+static void writeMatchingTraceTimeOptionsDistributor(SyncState* const syncState,
const unsigned int i, const unsigned int j)
{
MatchingDataDistributor* matchingData= syncState->matchingData;
g_queue_foreach(matchingData->distributedModules, &gfGraphFunctionCall,
&(struct GraphAggregate) {offsetof(MatchingModule,
- writeMatchingGraphsOptions), i, j});
+ graphFunctions.writeTraceTimeOptions), i, j});
}