LCOV - code coverage report
Current view: top level - lib/src - configure_dart_native.dart (source / functions) Coverage Total Hit
Test: coverage.lcov Lines: 85.0 % 20 17
Test Date: 2025-08-17 13:02:53 Functions: - 0 0

            Line data    Source code
       1              : import 'dart:io';
       2              : 
       3              : import 'package:logging/logging.dart';
       4              : import 'package:network_tools/network_tools.dart' as packages_page;
       5              : import 'package:network_tools/src/injection.dart';
       6              : import 'package:network_tools/src/models/arp_data.dart';
       7              : import 'package:network_tools/src/models/vendor.dart';
       8              : import 'package:network_tools/src/repository/repository.dart';
       9              : import 'package:network_tools/src/services/impls/host_scanner_service_impl.dart';
      10              : import 'package:network_tools/src/services/impls/mdns_scanner_service_impl.dart';
      11              : import 'package:network_tools/src/services/impls/port_scanner_service_impl.dart';
      12              : 
      13              : /// Configures the network tools package for Dart native platforms.
      14              : ///
      15              : /// Sets up the database directory, enables debugging if specified, and initializes
      16              : /// all required service implementations and vendor tables for network operations.
      17            1 : Future<void> configureNetworkTools(
      18              :   String dbDirectory, {
      19              :   bool enableDebugging = false,
      20              :   bool rebuildData = false,
      21              : }) async {
      22            1 :   final logger = Logger('configure_network_tools');
      23              :   packages_page.enableDebugging = enableDebugging;
      24              :   packages_page.dbDirectory = dbDirectory;
      25              : 
      26            2 :   final Directory newDirectory = Directory(packages_page.dbDirectory);
      27            1 :   await newDirectory.create(recursive: true);
      28            3 :   logger.fine('Directory created successfully: ${newDirectory.path}');
      29              : 
      30            1 :   if (packages_page.enableDebugging) {
      31            2 :     Logger.root.level = Level.FINE;
      32            4 :     Logger.root.onRecord.listen((record) {
      33            3 :       if (record.loggerName == logger.name) {
      34              :         // When debugging is enabled, log only the network_tools logger
      35              :         // ignore: avoid_print
      36            0 :         print(
      37            0 :           '${record.time.toLocal()}: ${record.level.name}: ${record.loggerName}: ${record.message}',
      38              :         );
      39              :       }
      40              :     });
      41              :   }
      42              : 
      43              :   // Setting dart native classes implementations
      44            1 :   HostScannerServiceImpl();
      45            1 :   PortScannerServiceImpl();
      46            1 :   MdnsScannerServiceImpl();
      47              : 
      48            1 :   await initializeNetworkTools(rebuildData);
      49              : }
      50              : 
      51              : /// Initializes the ARP table and vendor table map for network operations.
      52            1 : Future<void> initializeNetworkTools(bool rebuildData) async {
      53            1 :   configureDependencies(Env.prod);
      54              :   if (rebuildData) {
      55            0 :     await getIt<Repository<ARPData>>().clear();
      56              :   }
      57            3 :   await getIt<Repository<ARPData>>().build();
      58            3 :   await getIt<Repository<Vendor>>().build();
      59              : }
        

Generated by: LCOV version 2.0-1