Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint > Class Template Reference

Owner-thread integration for cache reservations and background decode workers. More...

#include <sample_stream_async_service.hpp>

Public Member Functions

 SampleStreamAsyncService ()=default
 ~SampleStreamAsyncService ()
 SampleStreamAsyncService (const SampleStreamAsyncService &)=delete
SampleStreamAsyncService & operator= (const SampleStreamAsyncService &)=delete
bool prepare (const SampleStreamAsyncServiceConfig &config)
SampleStreamAsyncPrepareResult prepare_checked (const SampleStreamAsyncServiceConfig &config)
void release () noexcept
bool prepared () const noexcept
SampleStreamSourceAddResult add_source (const SampleStreamCacheSourceConfig &config, FrameReader reader)
SampleStreamSourceAddResult add_source (const SampleStreamCacheSourceConfig &config, FrameReaderBinding binding)
SampleStreamScheduleStatus request_page (const SampleStreamPageDemand &demand) noexcept
std::size_t cancel_pending_source_demands (SampleStreamSourceToken source) noexcept
std::size_t cancel_requester (SampleStreamRequesterToken requester) noexcept
template<std::size_t Capacity>
SampleStreamCommandDrainResult drain_commands (SampleStreamCommandInbox< Capacity > &inbox) noexcept
bool update_audio_generations (std::uint64_t active, std::uint64_t completed) noexcept
std::uint64_t begin_audio_page_read () const noexcept
void complete_audio_page_read (std::uint64_t epoch) noexcept
SampleStreamSourceRetireStatus retire_source_after_asset_unpublish (SampleStreamSourceToken source) noexcept
bool discard_unpublished_source (SampleStreamSourceToken source) noexcept
std::size_t collect_retired_sources () noexcept
SampleStreamAsyncDispatchResult dispatch_once () noexcept
SampleStreamAsyncPollStatus try_process_completion (std::uint32_t worker_index) noexcept
SampleStreamAsyncPollStatus wait_process_completion (std::uint32_t worker_index) noexcept
void drain_completions () noexcept
const SampleStreamCacheService & cache_service () const noexcept
SampleStreamCacheServiceStats cache_stats () const noexcept
SampleStreamDecodePoolTelemetry decode_telemetry () const noexcept
SampleStreamAsyncServiceTelemetry telemetry () const noexcept

Detailed Description

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
class pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >

Owner-thread integration for cache reservations and background decode workers.

Destruction joins workers before any cache source or window is destroyed.

Constructor & Destructor Documentation

◆ SampleStreamAsyncService() [1/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::SampleStreamAsyncService ( )
default

◆ ~SampleStreamAsyncService()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::~SampleStreamAsyncService ( )
inline

◆ SampleStreamAsyncService() [2/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::SampleStreamAsyncService ( const SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint > & )
delete

Member Function Documentation

◆ add_source() [1/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamSourceAddResult pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::add_source ( const SampleStreamCacheSourceConfig & config,
FrameReader reader )
inline

◆ add_source() [2/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamSourceAddResult pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::add_source ( const SampleStreamCacheSourceConfig & config,
FrameReaderBinding binding )
inline

◆ begin_audio_page_read()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
std::uint64_t pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::begin_audio_page_read ( ) const
inlinenoexcept

◆ cache_service()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
const SampleStreamCacheService & pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::cache_service ( ) const
inlinenoexcept

◆ cache_stats()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamCacheServiceStats pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::cache_stats ( ) const
inlinenoexcept

◆ cancel_pending_source_demands()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
std::size_t pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::cancel_pending_source_demands ( SampleStreamSourceToken source)
inlinenoexcept

◆ cancel_requester()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
std::size_t pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::cancel_requester ( SampleStreamRequesterToken requester)
inlinenoexcept

◆ collect_retired_sources()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
std::size_t pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::collect_retired_sources ( )
inlinenoexcept

◆ complete_audio_page_read()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
void pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::complete_audio_page_read ( std::uint64_t epoch)
inlinenoexcept

◆ decode_telemetry()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamDecodePoolTelemetry pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::decode_telemetry ( ) const
inlinenoexcept

◆ discard_unpublished_source()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
bool pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::discard_unpublished_source ( SampleStreamSourceToken source)
inlinenoexcept

◆ dispatch_once()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncDispatchResult pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::dispatch_once ( )
inlinenoexcept

◆ drain_commands()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
template<std::size_t Capacity>
SampleStreamCommandDrainResult pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::drain_commands ( SampleStreamCommandInbox< Capacity > & inbox)
inlinenoexcept

◆ drain_completions()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
void pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::drain_completions ( )
inlinenoexcept

◆ operator=()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncService & pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::operator= ( const SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint > & )
delete

◆ prepare()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
bool pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::prepare ( const SampleStreamAsyncServiceConfig & config)
inline

◆ prepare_checked()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncPrepareResult pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::prepare_checked ( const SampleStreamAsyncServiceConfig & config)
inline

◆ prepared()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
bool pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::prepared ( ) const
inlinenoexcept

◆ release()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
void pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::release ( )
inlinenoexcept

◆ request_page()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamScheduleStatus pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::request_page ( const SampleStreamPageDemand & demand)
inlinenoexcept

◆ retire_source_after_asset_unpublish()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamSourceRetireStatus pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::retire_source_after_asset_unpublish ( SampleStreamSourceToken source)
inlinenoexcept

◆ telemetry()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncServiceTelemetry pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::telemetry ( ) const
inlinenoexcept

◆ try_process_completion()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncPollStatus pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::try_process_completion ( std::uint32_t worker_index)
inlinenoexcept

◆ update_audio_generations()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
bool pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::update_audio_generations ( std::uint64_t active,
std::uint64_t completed )
inlinenoexcept

◆ wait_process_completion()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8, typename DispatchCutpoint = SampleStreamAsyncNoopDispatchCutpoint>
SampleStreamAsyncPollStatus pulp::audio::SampleStreamAsyncService< JobMailboxCapacity, CompletionMailboxCapacity, DispatchCutpoint >::wait_process_completion ( std::uint32_t worker_index)
inlinenoexcept

The documentation for this class was generated from the following file: