package com.jetbrains.lang.dart.analyzer; import com.intellij.openapi.project.Project; import com.intellij.util.messages.MessageBus; import com.intellij.util.messages.Topic; import org.jetbrains.annotations.NotNull; /** * A utility class to send and receive Dart analysis busy messages on the project message bus. */ public class DartAnalysisServerMessages { public static final Topic<DartAnalysisNotifier> DART_ANALYSIS_TOPIC = Topic.create("dart.analysisBusy", DartAnalysisNotifier.class); public interface DartAnalysisNotifier { void analysisStarted(); void analysisFinished(); } public static void sendAnalysisStarted(@NotNull Project project, boolean isStarting) { final MessageBus bus = project.getMessageBus(); final DartAnalysisNotifier publisher = bus.syncPublisher(DART_ANALYSIS_TOPIC); if (isStarting) { publisher.analysisStarted(); } else { publisher.analysisFinished(); } } }