| 2175 | } |
| 2176 | |
| 2177 | ParlioDebugMetrics ParlioEngine::getDebugMetrics() const FL_NOEXCEPT { |
| 2178 | ParlioDebugMetrics metrics = {}; |
| 2179 | |
| 2180 | if (!mIsrContext) { |
| 2181 | return metrics; |
| 2182 | } |
| 2183 | |
| 2184 | (void)mIsrContext->mStreamComplete.load(fl::memory_order_acquire); |
| 2185 | (void)mIsrContext->mTransmitting.load(fl::memory_order_acquire); |
| 2186 | |
| 2187 | metrics.mStartTimeUs = 0; // Not tracked yet |
| 2188 | metrics.mEndTimeUs = mIsrContext->mEndTimeUs; |
| 2189 | metrics.mIsrCount = mIsrContext->mIsrCount; |
| 2190 | metrics.mChunksQueued = 0; // Not tracked yet |
| 2191 | metrics.mChunksCompleted = mIsrContext->mChunksCompleted; |
| 2192 | metrics.mBytesTotal = mIsrContext->mTotalBytes; |
| 2193 | metrics.mBytesTransmitted = mIsrContext->mBytesTransmitted; |
| 2194 | metrics.mTxDoneCount = mIsrContext->mDebugTxDoneCount; |
| 2195 | metrics.mWorkerIsrCount = mIsrContext->mDebugWorkerIsrCount; |
| 2196 | metrics.mUnderrunCount = mIsrContext->mUnderrunCount; |
| 2197 | metrics.mRingCount = mIsrContext->mRingCount; |
| 2198 | metrics.mErrorCode = mErrorOccurred ? 1 : 0; |
| 2199 | metrics.mRingError = mIsrContext->mRingError.load(fl::memory_order_acquire); |
| 2200 | metrics.mHardwareIdle = mIsrContext->mHardwareIdle.load(fl::memory_order_acquire); |
| 2201 | metrics.mTransmissionActive = |
| 2202 | mIsrContext->mTransmissionActive.load(fl::memory_order_acquire); |
| 2203 | |
| 2204 | return metrics; |
| 2205 | } |
| 2206 | |
| 2207 | } // namespace detail |
| 2208 | } // namespace fl |
no test coverage detected