Skip to content
jos edited this page Jan 31, 2026 · 1 revision

API Overview

This page provides a high-level summary of the public interfaces exposed by the Ping project and how to access the full generated documentation.

Cross-links: Home · Architecture · Prompt-Engineering · Development-Workflow · API · Doxygen-Integration · Roadmap

Accessing Full API Documentation

The complete, Doxygen-generated reference is available as HTML under:

Open this file in a browser to explore namespaces, classes, functions, and files.

Main Public Components

The actual C++ headers define the definitive contracts. This section summarizes the most important ones to guide navigation of the Doxygen docs.

Session and Orchestration

  • Ping session interface and implementation
    • Configures and manages a sequence of ICMP echo requests.
    • Exposes operations to start, stop, and query the current state of a session.
    • Provides access to collected statistics.

Platform Ping Backends

  • Abstract backend interface

    • Defines a uniform contract for sending/receiving ping operations.
    • Implemented separately for Windows, Linux, and macOS.
  • Platform-specific implementations

    • Encapsulate OS-specific system calls and error handling.
    • Used exclusively via the abstract interface by the session layer.

Statistics Aggregator

  • Statistics aggregator API
    • Accepts raw latency samples and status information.
    • Computes summary metrics (min/avg/max, loss, optional histograms).
    • Provides read-only accessors for the CLI and exporters.

Views and Exporters

  • Console view

    • Consumes statistics and session information.
    • Renders human-readable summaries and possibly per-packet output.
  • CSV exporter

    • Writes results in comma-separated format for spreadsheets or scripts.
  • JSON exporter

    • Serializes results into JSON for automated processing.

Relations Between Components

The API surface is intentionally narrow:

  1. Application code or CLI constructs a session using a factory or configuration API.
  2. The session internally obtains a platform backend appropriate for the host OS.
  3. For each ping, the backend returns timing and status to the statistics aggregator.
  4. At the end of the run, the session passes aggregated data to views/exporters.

A typical class diagram will be available via Doxygen and mirrored as an image:

Class Diagram

Refer to the generated Doxygen pages (starting at docs/index.html) for exact class names, namespaces, and signatures.

Clone this wiki locally