Table des matières

AK::StreamMgr::IAkFileLocationResolver Class Reference

List of all members.

Public Member Functions

virtual AKRESULT  Open (const AkOSChar *in_pszFileName, AkOpenMode in_eOpenMode, AkFileSystemFlags *in_pFlags, bool &io_bSyncOpen, AkFileDesc &io_fileDesc)=0
virtual AKRESULT  Open (AkFileID in_fileID, AkOpenMode in_eOpenMode, AkFileSystemFlags *in_pFlags, bool &io_bSyncOpen, AkFileDesc &io_fileDesc)=0

Protected Member Functions

virtual  ~IAkFileLocationResolver ()
  Virtual destructor on interface to avoid warnings.

Detailed Description

File location resolver interface. There is one and only one File Location Resolver that is registered to the Stream Manager (using AK::StreamMgr::SetFileLocationResolver()). Its purpose is to map a file name or ID to 1) a streaming device / I/O hook; 2) a valid file descriptor (AkFileDesc) usable by the I/O hook. When your Low-Level I/O submodule uses a single device, you should create a standalone I/O hook which implements one of the I/O hooks defined above (blocking or deferred), as well as the File Location Resolver. You then register this object to the Stream Manager as the File Location Resolver. If you wish to create multiple devices, then you should have a separate object that implements AK::StreamMgr::IAkFileLocationResolver and registers to the Stream Manager as such. This object will be used to dispatch the file open request to the appropriate device. The strategy you will use to select the correct device is up to you to implement. You may also implement a set of hooks that delegate opening to the next device when they can't find the file requested (like a chain of responsiblity pattern), although this will likely be less efficient.

Definition at line 401 of file AkStreamMgrModule.h.


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