Skip to content

Commit

Permalink
reorganized collectors hierarchy, implemented skeleton of traffic con…
Browse files Browse the repository at this point in the history
…sumption collector
  • Loading branch information
OlehMarch committed Jun 15, 2023
1 parent 86a3a34 commit b15a98a
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 14 deletions.
7 changes: 6 additions & 1 deletion lib/app_analysis.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@

library app_analysis;

export 'src/collectors.dart';
export 'src/collectors.dart'
hide
AnalysisCollectorInterface,
AnalysisCollectorWithExtremumsInterface,
AnalysisOnDemandCollectorInterface,
AnalysisPeriodicalCollectorInterface;
export 'src/models.dart' hide AnalysisExtremums, AnalysisData, AnalysisInfo;
export 'src/analyser.dart';
export 'src/storages.dart';
Expand Down
19 changes: 18 additions & 1 deletion lib/src/collectors/collector.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,24 @@ abstract class AnalysisCollectorInterface<T> {

Map<DateTime, T> get data;
void clearData();
}

abstract class AnalysisCollectorWithExtremumsInterface<T> {
const AnalysisCollectorWithExtremumsInterface._();

Future<T> collect();
Future<Extremum<T>> getExtremum();
}

abstract class AnalysisPeriodicalCollectorInterface<T>
implements AnalysisCollectorInterface<T> {
const AnalysisPeriodicalCollectorInterface._();

Future<T> collect();
}

abstract class AnalysisOnDemandCollectorInterface<T, E>
implements AnalysisCollectorInterface<T> {
const AnalysisOnDemandCollectorInterface._();

Future<T> collect(E value);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ import 'package:app_analysis/app_analysis.dart';
import 'package:battery_info/battery_info_plugin.dart';
import 'package:cross_platform/cross_platform.dart';

import '../collector.dart';

const kUnknownBatteryLevel = -1;

abstract class BatteryLevelCollectorInterface
implements AnalysisCollectorInterface<num> {}
implements
AnalysisPeriodicalCollectorInterface<num>,
AnalysisCollectorWithExtremumsInterface<num> {}

class BatteryLevelCollector implements BatteryLevelCollectorInterface {
BatteryLevelCollector();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ import 'package:app_analysis/app_analysis.dart';
import 'package:battery_info/battery_info_plugin.dart';
import 'package:cross_platform/cross_platform.dart';

import '../collector.dart';

const kUnknownBatteryTemperature = -1;

abstract class BatteryTemperatureCollectorInterface
implements AnalysisCollectorInterface<num> {}
implements
AnalysisPeriodicalCollectorInterface<num>,
AnalysisCollectorWithExtremumsInterface<num> {}

class BatteryTemperatureCollector
implements BatteryTemperatureCollectorInterface {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ import 'package:app_analysis/app_analysis.dart';
import 'package:cpu_reader/cpu_reader.dart';
import 'package:cross_platform/cross_platform.dart';

import '../collector.dart';

abstract class CpuFrequencyCollectorInterface
implements AnalysisCollectorInterface<CpuFrequency> {}
implements
AnalysisPeriodicalCollectorInterface<CpuFrequency>,
AnalysisCollectorWithExtremumsInterface<CpuFrequency> {}

class CpuFrequencyCollector implements CpuFrequencyCollectorInterface {
CpuFrequencyCollector();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ import 'package:app_analysis/app_analysis.dart';
import 'package:cpu_reader/cpu_reader.dart';
import 'package:cross_platform/cross_platform.dart';

import '../collector.dart';

const kUnknownCpuTemperature = -1;

abstract class CpuTemperatureCollectorInterface
implements AnalysisCollectorInterface<num> {}
implements
AnalysisPeriodicalCollectorInterface<num>,
AnalysisCollectorWithExtremumsInterface<num> {}

class CpuTemperatureCollector implements CpuTemperatureCollectorInterface {
CpuTemperatureCollector();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
import '../../models.dart';
import '../collector.dart';

class AnalysisTrafficConsumptionCollector implements AnalysisCollector<int> {
const AnalysisTrafficConsumptionCollector();
abstract class TrafficConsumptionCollectorInterface
implements AnalysisOnDemandCollectorInterface<num, dynamic> {}

class TrafficConsumptionCollector
implements TrafficConsumptionCollectorInterface {
TrafficConsumptionCollector();

final Map<DateTime, num> _data = {};

@override
void collect(int data) {
// TODO
}
Map<DateTime, num> get data => Map.unmodifiable(_data);

@override
void clearData() => _data.clear();

@override
Extremum<int> getExtremum() {
// TODO: implement getExtremum
Future<num> collect(dynamic value) async {
// TODO: implement collect
throw UnimplementedError();
}
}

0 comments on commit b15a98a

Please sign in to comment.