Repository navigation
API
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
The complete, Doxygen-generated reference is available as HTML under:
Open this file in a browser to explore namespaces, classes, functions, and files.
The actual C++ headers define the definitive contracts. This section summarizes the most important ones to guide navigation of the Doxygen docs.
-
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.
-
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 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.
-
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.
The API surface is intentionally narrow:
- Application code or CLI constructs a session using a factory or configuration API.
- The session internally obtains a platform backend appropriate for the host OS.
- For each ping, the backend returns timing and status to the statistics aggregator.
- 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:

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