LCOV - code coverage report
Current view: top level - src/trace/export - composite_exporter.dart (source / functions) Coverage Total Hit
Test: lcov.info Lines: 70.0 % 10 7
Test Date: 2025-11-15 13:23:01 Functions: - 0 0

            Line data    Source code
       1              : // Licensed under the Apache License, Version 2.0
       2              : // Copyright 2025, Michael Bushe, All rights reserved.
       3              : 
       4              : import 'package:dartastic_opentelemetry/src/trace/export/span_exporter.dart';
       5              : import 'package:dartastic_opentelemetry/src/trace/span.dart';
       6              : 
       7              : /// A composite exporter that delegates export operations to multiple exporters.
       8              : ///
       9              : /// This exporter combines multiple exporters, making it possible to export spans
      10              : /// to multiple backend systems simultaneously.
      11              : /// Used for debugging, it prints exported spans
      12              : class CompositeExporter extends SpanExporter {
      13              :   /// The list of exporters to delegate to.
      14              :   final List<SpanExporter> spanExporters;
      15              : 
      16              :   /// Creates a new CompositeExporter with the specified exporters.
      17              :   ///
      18              :   /// @param spanExporters The list of exporters to delegate to
      19           72 :   CompositeExporter(this.spanExporters);
      20              : 
      21           15 :   @override
      22              :   Future<void> export(List<Span> spans) async {
      23           30 :     for (var exporter in spanExporters) {
      24           15 :       await exporter.export(spans);
      25              :     }
      26              :   }
      27              : 
      28            0 :   @override
      29              :   Future<void> forceFlush() async {
      30            0 :     for (var exporter in spanExporters) {
      31            0 :       await exporter.forceFlush();
      32              :     }
      33              :   }
      34              : 
      35           71 :   @override
      36              :   Future<void> shutdown() async {
      37          142 :     for (var exporter in spanExporters) {
      38           71 :       await exporter.shutdown();
      39              :     }
      40              :   }
      41              : }
        

Generated by: LCOV version 2.0-1