Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::IO::Streamer Class Referencefinal

#include <Streamer.h>

Inherits AZ::IO::IStreamer.

Public Member Functions

 AZ_RTTI (Streamer, "{3D880982-6E3F-4913-9947-55E01030D4AA}", IStreamer)
 
 AZ_CLASS_ALLOCATOR (Streamer, SystemAllocator)
 
FileRequestPtr Read (AZStd::string_view relativePath, void *outputBuffer, size_t outputBufferSize, size_t readSize, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0) override
 Creates a request to read a file with a user provided output buffer.
 
FileRequestPtrRead (FileRequestPtr &request, AZStd::string_view relativePath, void *outputBuffer, size_t outputBufferSize, size_t readSize, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0) override
 Sets a request to the read command with a user provided output buffer.
 
FileRequestPtr Read (AZStd::string_view relativePath, IStreamerTypes::RequestMemoryAllocator &allocator, size_t size, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0) override
 Creates a request to read a file with an allocator to create the output buffer.
 
FileRequestPtrRead (FileRequestPtr &request, AZStd::string_view relativePath, IStreamerTypes::RequestMemoryAllocator &allocator, size_t size, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0) override
 Set a request to the read command with an allocator to create the output buffer.
 
FileRequestPtr Cancel (FileRequestPtr target) override
 Creates a request to cancel a previously queued request.
 
FileRequestPtrCancel (FileRequestPtr &request, FileRequestPtr target) override
 Sets a request to the cancel command.
 
FileRequestPtr RescheduleRequest (FileRequestPtr target, IStreamerTypes::Deadline newDeadline, IStreamerTypes::Priority newPriority) override
 Creates a request to adjust a previous queued request.
 
FileRequestPtrRescheduleRequest (FileRequestPtr &request, FileRequestPtr target, IStreamerTypes::Deadline newDeadline, IStreamerTypes::Priority newPriority) override
 Sets a request to the reschedule command.
 
FileRequestPtr CreateDedicatedCache (AZStd::string_view relativePath) override
 Creates a dedicated cache for the target file.
 
FileRequestPtrCreateDedicatedCache (FileRequestPtr &request, AZStd::string_view relativePath) override
 Creates a dedicated cache for the target file.
 
FileRequestPtr DestroyDedicatedCache (AZStd::string_view relativePath) override
 Destroy a dedicated cache created by CreateDedicatedCache.
 
FileRequestPtrDestroyDedicatedCache (FileRequestPtr &request, AZStd::string_view relativePath) override
 Destroy a dedicated cache created by CreateDedicatedCache.
 
FileRequestPtr FlushCache (AZStd::string_view relativePath) override
 Clears a file from all caches in use by Streamer.
 
FileRequestPtrFlushCache (FileRequestPtr &request, AZStd::string_view relativePath) override
 Clears a file from all caches in use by Streamer.
 
FileRequestPtr FlushCaches () override
 Forcefully clears out all caches internally held by the available devices.
 
FileRequestPtrFlushCaches (FileRequestPtr &request) override
 Forcefully clears out all caches internally held by the available devices.
 
FileRequestPtr Custom (AZStd::any data) override
 Creates a custom request.
 
FileRequestPtrCustom (FileRequestPtr &request, AZStd::any data) override
 Creates a custom request.
 
FileRequestPtrSetRequestCompleteCallback (FileRequestPtr &request, OnCompleteCallback callback) override
 Sets a callback function that will trigger when the provided request completes.
 
FileRequestPtr CreateRequest () override
 Create a new blank request.
 
void CreateRequestBatch (AZStd::vector< FileRequestPtr > &requests, size_t count) override
 Creates a number of new blank requests.
 
void QueueRequest (const FileRequestPtr &request) override
 Queues a request for processing by Streamer's stack.
 
void QueueRequestBatch (const AZStd::vector< FileRequestPtr > &requests) override
 Queue a batch of requests for processing by Streamer's stack.
 
void QueueRequestBatch (AZStd::vector< FileRequestPtr > &&requests) override
 Queue a batch of requests for processing by Streamer's stack.
 
bool HasRequestCompleted (FileRequestHandle request) const override
 Check if the provided request has completed.
 
IStreamerTypes::RequestStatus GetRequestStatus (FileRequestHandle request) const override
 Check the status of a request.
 
AZStd::chrono::steady_clock::time_point GetEstimatedRequestCompletionTime (FileRequestHandle request) const override
 Returns the time that the provided request will complete.
 
bool GetReadRequestResult (FileRequestHandle request, void *&buffer, u64 &numBytesRead, IStreamerTypes::ClaimMemory claimMemory=IStreamerTypes::ClaimMemory::No) const override
 Gets the result for operations that read data.
 
void CollectStatistics (AZStd::vector< Statistic > &statistics) override
 Call to collect statistics from all the components that make up Streamer.
 
FileRequestPtr Report (AZStd::vector< Statistic > &output, IStreamerTypes::ReportType reportType) override
 Tells AZ::IO::Streamer the collect information for the selected report type and store it in the provided output.
 
FileRequestPtrReport (FileRequestPtr &request, AZStd::vector< Statistic > &output, IStreamerTypes::ReportType reportType) override
 Tells AZ::IO::Streamer the collect information for the selected report type and store it in the provided output.
 
const IStreamerTypes::RecommendationsGetRecommendations () const override
 Returns configuration recommendations as reported by the scheduler.
 
void SuspendProcessing () override
 Suspends processing of requests in Streamer's stack.
 
void ResumeProcessing () override
 Resumes processing after a previous call to SuspendProcessing.
 
bool IsSuspended () const override
 Whether or not processing of requests has been suspended.
 
void RecordStatistics ()
 Records the statistics to a profiler.
 
 Streamer (const AZStd::thread_desc &threadDesc, AZStd::unique_ptr< Scheduler > streamStack)
 
- Public Member Functions inherited from AZ::IO::IStreamer
 AZ_RTTI (IStreamer, "{0015594D-6EA5-4309-A2AD-1D704F264A66}")
 
virtual FileRequestPtr Read (AZStd::string_view relativePath, void *outputBuffer, size_t outputBufferSize, size_t readSize, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0)=0
 
virtual FileRequestPtrRead (FileRequestPtr &request, AZStd::string_view relativePath, void *outputBuffer, size_t outputBufferSize, size_t readSize, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0)=0
 
virtual FileRequestPtr Read (AZStd::string_view relativePath, IStreamerTypes::RequestMemoryAllocator &allocator, size_t size, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0)=0
 
virtual FileRequestPtrRead (FileRequestPtr &request, AZStd::string_view relativePath, IStreamerTypes::RequestMemoryAllocator &allocator, size_t size, IStreamerTypes::Deadline deadline=IStreamerTypes::s_noDeadline, IStreamerTypes::Priority priority=IStreamerTypes::s_priorityMedium, size_t offset=0)=0
 
virtual FileRequestPtr Cancel (FileRequestPtr target)=0
 
virtual FileRequestPtrCancel (FileRequestPtr &request, FileRequestPtr target)=0
 
virtual FileRequestPtr RescheduleRequest (FileRequestPtr target, IStreamerTypes::Deadline newDeadline, IStreamerTypes::Priority newPriority)=0
 
virtual FileRequestPtrRescheduleRequest (FileRequestPtr &request, FileRequestPtr target, IStreamerTypes::Deadline newDeadline, IStreamerTypes::Priority newPriority)=0
 
virtual FileRequestPtr CreateDedicatedCache (AZStd::string_view relativePath)=0
 
virtual FileRequestPtrCreateDedicatedCache (FileRequestPtr &request, AZStd::string_view relativePath)=0
 
virtual FileRequestPtr DestroyDedicatedCache (AZStd::string_view relativePath)=0
 
virtual FileRequestPtrDestroyDedicatedCache (FileRequestPtr &request, AZStd::string_view relativePath)=0
 
virtual FileRequestPtr FlushCache (AZStd::string_view relativePath)=0
 
virtual FileRequestPtrFlushCache (FileRequestPtr &request, AZStd::string_view relativePath)=0
 
virtual FileRequestPtr FlushCaches ()=0
 
virtual FileRequestPtrFlushCaches (FileRequestPtr &request)=0
 
virtual FileRequestPtr Report (AZStd::vector< Statistic > &output, IStreamerTypes::ReportType reportType)=0
 
virtual FileRequestPtrReport (FileRequestPtr &request, AZStd::vector< Statistic > &output, IStreamerTypes::ReportType reportType)=0
 
virtual FileRequestPtr Custom (AZStd::any data)=0
 
virtual FileRequestPtrCustom (FileRequestPtr &request, AZStd::any data)=0
 
virtual FileRequestPtrSetRequestCompleteCallback (FileRequestPtr &request, OnCompleteCallback callback)=0
 
virtual FileRequestPtr CreateRequest ()=0
 
virtual void CreateRequestBatch (AZStd::vector< FileRequestPtr > &requests, size_t count)=0
 
virtual void QueueRequest (const FileRequestPtr &request)=0
 
virtual void QueueRequestBatch (const AZStd::vector< FileRequestPtr > &requests)=0
 
virtual void QueueRequestBatch (AZStd::vector< FileRequestPtr > &&requests)=0
 
virtual bool HasRequestCompleted (FileRequestHandle request) const =0
 
virtual IStreamerTypes::RequestStatus GetRequestStatus (FileRequestHandle request) const =0
 
virtual AZStd::chrono::steady_clock::time_point GetEstimatedRequestCompletionTime (FileRequestHandle request) const =0
 
virtual bool GetReadRequestResult (FileRequestHandle request, void *&buffer, u64 &numBytesRead, IStreamerTypes::ClaimMemory claimMemory=IStreamerTypes::ClaimMemory::No) const =0
 
virtual void CollectStatistics (AZStd::vector< Statistic > &statistics)=0
 
virtual const IStreamerTypes::RecommendationsGetRecommendations () const =0
 
virtual void SuspendProcessing ()=0
 
virtual void ResumeProcessing ()=0
 
virtual bool IsSuspended () const =0
 Whether or not processing of requests has been suspended.
 

Additional Inherited Members

- Public Types inherited from AZ::IO::IStreamer
using OnCompleteCallback = AZStd::function< void(FileRequestHandle)>
 

Detailed Description

Data streamer.

Member Function Documentation

◆ Cancel() [1/2]

FileRequestPtr & AZ::IO::Streamer::Cancel ( FileRequestPtr request,
FileRequestPtr  target 
)
overridevirtual

Sets a request to the cancel command.

Implements AZ::IO::IStreamer.

◆ Cancel() [2/2]

FileRequestPtr AZ::IO::Streamer::Cancel ( FileRequestPtr  target)
overridevirtual

Creates a request to cancel a previously queued request.

Implements AZ::IO::IStreamer.

◆ CollectStatistics()

void AZ::IO::Streamer::CollectStatistics ( AZStd::vector< Statistic > &  statistics)
overridevirtual

Call to collect statistics from all the components that make up Streamer.

Implements AZ::IO::IStreamer.

◆ CreateDedicatedCache() [1/2]

FileRequestPtr AZ::IO::Streamer::CreateDedicatedCache ( AZStd::string_view  relativePath)
overridevirtual

Creates a dedicated cache for the target file.

Implements AZ::IO::IStreamer.

◆ CreateDedicatedCache() [2/2]

FileRequestPtr & AZ::IO::Streamer::CreateDedicatedCache ( FileRequestPtr request,
AZStd::string_view  relativePath 
)
overridevirtual

Creates a dedicated cache for the target file.

Implements AZ::IO::IStreamer.

◆ CreateRequest()

FileRequestPtr AZ::IO::Streamer::CreateRequest ( )
overridevirtual

Create a new blank request.

Implements AZ::IO::IStreamer.

◆ CreateRequestBatch()

void AZ::IO::Streamer::CreateRequestBatch ( AZStd::vector< FileRequestPtr > &  requests,
size_t  count 
)
overridevirtual

Creates a number of new blank requests.

Implements AZ::IO::IStreamer.

◆ Custom() [1/2]

FileRequestPtr AZ::IO::Streamer::Custom ( AZStd::any  data)
overridevirtual

Creates a custom request.

Implements AZ::IO::IStreamer.

◆ Custom() [2/2]

FileRequestPtr & AZ::IO::Streamer::Custom ( FileRequestPtr request,
AZStd::any  data 
)
overridevirtual

Creates a custom request.

Implements AZ::IO::IStreamer.

◆ DestroyDedicatedCache() [1/2]

FileRequestPtr AZ::IO::Streamer::DestroyDedicatedCache ( AZStd::string_view  relativePath)
overridevirtual

Destroy a dedicated cache created by CreateDedicatedCache.

Implements AZ::IO::IStreamer.

◆ DestroyDedicatedCache() [2/2]

FileRequestPtr & AZ::IO::Streamer::DestroyDedicatedCache ( FileRequestPtr request,
AZStd::string_view  relativePath 
)
overridevirtual

Destroy a dedicated cache created by CreateDedicatedCache.

Implements AZ::IO::IStreamer.

◆ FlushCache() [1/2]

FileRequestPtr AZ::IO::Streamer::FlushCache ( AZStd::string_view  relativePath)
overridevirtual

Clears a file from all caches in use by Streamer.

Implements AZ::IO::IStreamer.

◆ FlushCache() [2/2]

FileRequestPtr & AZ::IO::Streamer::FlushCache ( FileRequestPtr request,
AZStd::string_view  relativePath 
)
overridevirtual

Clears a file from all caches in use by Streamer.

Implements AZ::IO::IStreamer.

◆ FlushCaches() [1/2]

FileRequestPtr AZ::IO::Streamer::FlushCaches ( )
overridevirtual

Forcefully clears out all caches internally held by the available devices.

Implements AZ::IO::IStreamer.

◆ FlushCaches() [2/2]

FileRequestPtr & AZ::IO::Streamer::FlushCaches ( FileRequestPtr request)
overridevirtual

Forcefully clears out all caches internally held by the available devices.

Implements AZ::IO::IStreamer.

◆ GetEstimatedRequestCompletionTime()

AZStd::chrono::steady_clock::time_point AZ::IO::Streamer::GetEstimatedRequestCompletionTime ( FileRequestHandle  request) const
overridevirtual

Returns the time that the provided request will complete.

Implements AZ::IO::IStreamer.

◆ GetReadRequestResult()

bool AZ::IO::Streamer::GetReadRequestResult ( FileRequestHandle  request,
void *&  buffer,
u64 &  numBytesRead,
IStreamerTypes::ClaimMemory  claimMemory = IStreamerTypes::ClaimMemory::No 
) const
overridevirtual

Gets the result for operations that read data.

Implements AZ::IO::IStreamer.

◆ GetRecommendations()

const IStreamerTypes::Recommendations & AZ::IO::Streamer::GetRecommendations ( ) const
overridevirtual

Returns configuration recommendations as reported by the scheduler.

Implements AZ::IO::IStreamer.

◆ GetRequestStatus()

IStreamerTypes::RequestStatus AZ::IO::Streamer::GetRequestStatus ( FileRequestHandle  request) const
overridevirtual

Check the status of a request.

Implements AZ::IO::IStreamer.

◆ HasRequestCompleted()

bool AZ::IO::Streamer::HasRequestCompleted ( FileRequestHandle  request) const
overridevirtual

Check if the provided request has completed.

Implements AZ::IO::IStreamer.

◆ IsSuspended()

bool AZ::IO::Streamer::IsSuspended ( ) const
overridevirtual

Whether or not processing of requests has been suspended.

Implements AZ::IO::IStreamer.

◆ QueueRequest()

void AZ::IO::Streamer::QueueRequest ( const FileRequestPtr request)
overridevirtual

Queues a request for processing by Streamer's stack.

Implements AZ::IO::IStreamer.

◆ QueueRequestBatch() [1/2]

void AZ::IO::Streamer::QueueRequestBatch ( AZStd::vector< FileRequestPtr > &&  requests)
overridevirtual

Queue a batch of requests for processing by Streamer's stack.

Implements AZ::IO::IStreamer.

◆ QueueRequestBatch() [2/2]

void AZ::IO::Streamer::QueueRequestBatch ( const AZStd::vector< FileRequestPtr > &  requests)
overridevirtual

Queue a batch of requests for processing by Streamer's stack.

Implements AZ::IO::IStreamer.

◆ Read() [1/4]

FileRequestPtr AZ::IO::Streamer::Read ( AZStd::string_view  relativePath,
IStreamerTypes::RequestMemoryAllocator allocator,
size_t  size,
IStreamerTypes::Deadline  deadline = IStreamerTypes::s_noDeadline,
IStreamerTypes::Priority  priority = IStreamerTypes::s_priorityMedium,
size_t  offset = 0 
)
overridevirtual

Creates a request to read a file with an allocator to create the output buffer.

Implements AZ::IO::IStreamer.

◆ Read() [2/4]

FileRequestPtr AZ::IO::Streamer::Read ( AZStd::string_view  relativePath,
void *  outputBuffer,
size_t  outputBufferSize,
size_t  readSize,
IStreamerTypes::Deadline  deadline = IStreamerTypes::s_noDeadline,
IStreamerTypes::Priority  priority = IStreamerTypes::s_priorityMedium,
size_t  offset = 0 
)
overridevirtual

Creates a request to read a file with a user provided output buffer.

Implements AZ::IO::IStreamer.

◆ Read() [3/4]

FileRequestPtr & AZ::IO::Streamer::Read ( FileRequestPtr request,
AZStd::string_view  relativePath,
IStreamerTypes::RequestMemoryAllocator allocator,
size_t  size,
IStreamerTypes::Deadline  deadline = IStreamerTypes::s_noDeadline,
IStreamerTypes::Priority  priority = IStreamerTypes::s_priorityMedium,
size_t  offset = 0 
)
overridevirtual

Set a request to the read command with an allocator to create the output buffer.

Implements AZ::IO::IStreamer.

◆ Read() [4/4]

FileRequestPtr & AZ::IO::Streamer::Read ( FileRequestPtr request,
AZStd::string_view  relativePath,
void *  outputBuffer,
size_t  outputBufferSize,
size_t  readSize,
IStreamerTypes::Deadline  deadline = IStreamerTypes::s_noDeadline,
IStreamerTypes::Priority  priority = IStreamerTypes::s_priorityMedium,
size_t  offset = 0 
)
overridevirtual

Sets a request to the read command with a user provided output buffer.

Implements AZ::IO::IStreamer.

◆ Report() [1/2]

FileRequestPtr AZ::IO::Streamer::Report ( AZStd::vector< Statistic > &  output,
IStreamerTypes::ReportType  reportType 
)
overridevirtual

Tells AZ::IO::Streamer the collect information for the selected report type and store it in the provided output.

Implements AZ::IO::IStreamer.

◆ Report() [2/2]

FileRequestPtr & AZ::IO::Streamer::Report ( FileRequestPtr request,
AZStd::vector< Statistic > &  output,
IStreamerTypes::ReportType  reportType 
)
overridevirtual

Tells AZ::IO::Streamer the collect information for the selected report type and store it in the provided output.

Implements AZ::IO::IStreamer.

◆ RescheduleRequest() [1/2]

FileRequestPtr & AZ::IO::Streamer::RescheduleRequest ( FileRequestPtr request,
FileRequestPtr  target,
IStreamerTypes::Deadline  newDeadline,
IStreamerTypes::Priority  newPriority 
)
overridevirtual

Sets a request to the reschedule command.

Implements AZ::IO::IStreamer.

◆ RescheduleRequest() [2/2]

FileRequestPtr AZ::IO::Streamer::RescheduleRequest ( FileRequestPtr  target,
IStreamerTypes::Deadline  newDeadline,
IStreamerTypes::Priority  newPriority 
)
overridevirtual

Creates a request to adjust a previous queued request.

Implements AZ::IO::IStreamer.

◆ ResumeProcessing()

void AZ::IO::Streamer::ResumeProcessing ( )
overridevirtual

Resumes processing after a previous call to SuspendProcessing.

Implements AZ::IO::IStreamer.

◆ SetRequestCompleteCallback()

FileRequestPtr & AZ::IO::Streamer::SetRequestCompleteCallback ( FileRequestPtr request,
OnCompleteCallback  callback 
)
overridevirtual

Sets a callback function that will trigger when the provided request completes.

Implements AZ::IO::IStreamer.

◆ SuspendProcessing()

void AZ::IO::Streamer::SuspendProcessing ( )
overridevirtual

Suspends processing of requests in Streamer's stack.

Implements AZ::IO::IStreamer.


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