StompTransactionStats.fromManager constructor
StompTransactionStats.fromManager(
- StompTransactionManager manager
Creates statistics from a transaction manager
Implementation
factory StompTransactionStats.fromManager(StompTransactionManager manager) {
final transactions = manager._transactions.values.toList();
final active = transactions.where((t) => t.isActive).length;
final committed = transactions.where((t) => t.isCommitted).length;
final aborted = transactions.where((t) => t.isAborted).length;
Duration totalDuration = Duration.zero;
Duration longestDuration = Duration.zero;
for (final transaction in transactions) {
final duration = transaction.duration;
totalDuration += duration;
if (duration > longestDuration) {
longestDuration = duration;
}
}
final averageDuration = transactions.isNotEmpty
? Duration(microseconds: totalDuration.inMicroseconds ~/ transactions.length)
: Duration.zero;
return StompTransactionStats(
totalTransactions: transactions.length,
activeTransactions: active,
committedTransactions: committed,
abortedTransactions: aborted,
averageTransactionDuration: averageDuration,
longestTransactionDuration: longestDuration,
);
}