blob: 3ec7cfd6f79644d52e554578f8f1a76e67de9ee7 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file
part of models;
enum SampleProfileTag {
userVM,
userOnly,
vmUser,
vmOnly,
none
}
enum SampleProfileLoadingStatus {
disabled,
fetching,
loading,
loaded
}
bool isSampleProcessRunning(SampleProfileLoadingStatus status) {
switch (status) {
case SampleProfileLoadingStatus.fetching:
case SampleProfileLoadingStatus.loading:
return true;
default:
return false;
}
}
abstract class SampleProfileLoadingProgressEvent {
SampleProfileLoadingProgress get progress;
}
abstract class SampleProfileLoadingProgress {
SampleProfileLoadingStatus get status;
double get progress;
Duration get fetchingTime;
Duration get loadingTime;
SampleProfile get profile;
}
abstract class ClassSampleProfileRepository {
Stream<SampleProfileLoadingProgressEvent> get(ClassRef cls,
SampleProfileTag tag, {bool clear: false});
}
abstract class IsolateSampleProfileRepository {
Stream<SampleProfileLoadingProgressEvent> get(IsolateRef cls,
SampleProfileTag tag, {bool clear: false, bool forceFetch: false});
}