getStats method
Get cache statistics
Implementation
Map<String, dynamic> getStats() {
final now = DateTime.now();
int onlineCount = 0;
int offlineCount = 0;
int unknownCount = 0;
for (final status in _cache.values) {
final age = now.difference(status.checkedAt);
if (age <= _cacheTtl) {
switch (status.state) {
case PresenceState.online:
case PresenceState.probablyOnline:
onlineCount++;
break;
case PresenceState.offline:
offlineCount++;
break;
case PresenceState.unknown:
unknownCount++;
break;
}
}
}
return {
'totalCached': _cache.length,
'onlineCount': onlineCount,
'offlineCount': offlineCount,
'unknownCount': unknownCount,
'cacheTtlSeconds': _cacheTtl.inSeconds,
};
}