1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 20:12:21 +02:00
Beef/BeefySysLib/sound/Win32/AkFilePackageLowLevelIODeferred.h
2019-08-23 11:56:54 -07:00

49 lines
1.7 KiB
C++

//////////////////////////////////////////////////////////////////////
//
// AkFilePackageLowLevelIODeferred.h
//
// Extends the CAkDefaultIOHookDeferred low level I/O hook with File
// Package handling functionality.
//
// See AkDefaultIOHookBlocking.h for details on using the deferred
// low level I/O hook.
//
// See AkFilePackageLowLevelIO.h for details on using file packages.
//
// Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
//
//////////////////////////////////////////////////////////////////////
#ifndef _AK_FILE_PACKAGE_LOW_LEVEL_IO_DEFERRED_H_
#define _AK_FILE_PACKAGE_LOW_LEVEL_IO_DEFERRED_H_
#include "../Common/AkFilePackageLowLevelIO.h"
#include "AkDefaultIOHookDeferred.h"
class CAkFilePackageLowLevelIODeferred
: public CAkFilePackageLowLevelIO<CAkDefaultIOHookDeferred>
{
public:
CAkFilePackageLowLevelIODeferred() {}
virtual ~CAkFilePackageLowLevelIODeferred() {}
// Override Cancel: The Windows platform SDK only permits cancellations of all transfers
// for a given file handle. Since the packaged files share the same handle, we cannot do this.
void Cancel(
AkFileDesc & in_fileDesc, // File descriptor.
AkAsyncIOTransferInfo & io_transferInfo, // Transfer info to cancel.
bool & io_bCancelAllTransfersForThisFile // Flag indicating whether all transfers should be cancelled for this file (see notes in function description).
)
{
if ( !IsInPackage( in_fileDesc ) )
{
CAkDefaultIOHookDeferred::Cancel(
in_fileDesc, // File descriptor.
io_transferInfo, // Transfer info to cancel.
io_bCancelAllTransfersForThisFile // Flag indicating whether all transfers should be cancelled for this file (see notes in function description).
);
}
}
};
#endif //_AK_FILE_PACKAGE_LOW_LEVEL_IO_DEFERRED_H_