{
char* name;
+ /*
+ * This function is called at the beginning of a synchronization run for a set
+ * of traces. Allocate analysis specific data structures.
+ */
void (*initAnalysis)(struct _SyncState* const syncState);
+
+ /*
+ * Free the analysis specific data structures.
+ */
void (*destroyAnalysis)(struct _SyncState* const syncState);
+ /*
+ * Perform analysis on an event pair.
+ */
void (*analyzeMessage)(struct _SyncState* const syncState, Message* const
message);
+
+ /*
+ * Perform analysis on multiple messages.
+ */
void (*analyzeExchange)(struct _SyncState* const syncState, Exchange* const
exchange);
+
+ /*
+ * Perform analysis on muliple events.
+ */
void (*analyzeBroadcast)(struct _SyncState* const syncState, Broadcast* const
broadcast);
+
+ /*
+ * Finalize the factor calculations. Return synchronization factors
+ * between trace pairs.
+ */
AllFactors* (*finalizeAnalysis)(struct _SyncState* const syncState);
+ /*
+ * Print statistics related to analysis. Is always called after
+ * finalizeAnalysis.
+ */
void (*printAnalysisStats)(struct _SyncState* const syncState);
+
+ /*
+ * Write the analysis-specific options and graph commands in the gnuplot
+ * script. Is always called after finalizeAnalysis.
+ */
GraphFunctions graphFunctions;
} AnalysisModule;