LCOV - code coverage report
Current view: top level - lib/src/trace/export - composite_exporter.dart (source / functions) Coverage Total Hit
Test: lcov.info Lines: 100.0 % 10 10
Test Date: 2026-07-11 13:35:19 Functions: - 0 0

            Line data    Source code
       1              : // Copyright The OpenTelemetry Authors
       2              : // SPDX-License-Identifier: Apache-2.0
       3              : 
       4              : import '../span.dart';
       5              : import 'span_exporter.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            1 :   CompositeExporter(this.spanExporters);
      20              : 
      21            1 :   @override
      22              :   Future<void> export(List<Span> spans) async {
      23            2 :     for (var exporter in spanExporters) {
      24            1 :       await exporter.export(spans);
      25              :     }
      26              :   }
      27              : 
      28            1 :   @override
      29              :   Future<void> forceFlush() async {
      30            2 :     for (var exporter in spanExporters) {
      31            1 :       await exporter.forceFlush();
      32              :     }
      33              :   }
      34              : 
      35            1 :   @override
      36              :   Future<void> shutdown() async {
      37            2 :     for (var exporter in spanExporters) {
      38            1 :       await exporter.shutdown();
      39              :     }
      40              :   }
      41              : }
        

Generated by: LCOV version 2.0-1