import 'dart:typed_data'; import 'radar_manifest.dart'; import 'radar_source.dart'; /// Placeholder for direct ARPA Piemonte radar (HDF5 ODIM, 5-minute cadence from /// the Bric della Croce and Monte Settepani C-band radars). /// /// **Disabled.** Access requires an authorization from ARPA Piemonte that this /// project does not have and has not requested. The class exists so the shape /// of the seam is visible and the region config can name the adapter, not /// because it is nearly ready. /// /// When authorization arrives, the data is CC BY 4.0 and must be credited as /// "Fonte: Arpa Piemonte - www.arpa.piemonte.it". /// /// Every method throws. Constructing it is not an error — the region config may /// legitimately list it as unavailable — but using it is, and failing loudly /// beats silently serving something else. class ArpaRadarSource implements RadarSource { const ArpaRadarSource(); static const String _reason = 'the ARPA Piemonte radar adapter is disabled: it needs an authorization ' 'from ARPA that this project does not hold'; @override Future getLatestManifest() async => throw const RadarUnavailableException(_reason); @override Future> getFrames() async => throw const RadarUnavailableException(_reason); @override Future loadFrameBytes(RadarFrame frame) async => throw const RadarUnavailableException(_reason); }