2022-11-06 12:30:06 +00:00
|
|
|
/***
|
|
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
|
|
|
|
File: CompressionInterceptor.hpp
|
|
|
|
Date: 2022-9-14
|
|
|
|
Author: Reece
|
|
|
|
***/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Aurora/IO/Protocol/IProtocolInterceptorEx.hpp>
|
2023-07-27 16:26:23 +00:00
|
|
|
#include <Aurora/IO/Protocol/IProtocolLimitable.hpp>
|
2022-11-06 12:30:06 +00:00
|
|
|
|
|
|
|
namespace Aurora::Compression
|
|
|
|
{
|
2023-07-27 16:26:23 +00:00
|
|
|
struct ICompressionInterceptor :
|
|
|
|
IO::Protocol::IProtocolInterceptorEx,
|
|
|
|
IO::Protocol::IProtocolLimitable
|
2022-11-06 12:30:06 +00:00
|
|
|
{
|
|
|
|
virtual bool HasFailed() = 0;
|
2022-11-07 22:46:35 +00:00
|
|
|
|
2022-11-08 19:24:08 +00:00
|
|
|
/**
|
|
|
|
* @brief
|
|
|
|
*/
|
|
|
|
virtual void FlushNextFrame() = 0;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief When enabled, each IO tick is considered a logical frame instead of a streaming, meaning that a flush will occur
|
|
|
|
* To be used in conjuction with IProtocolStack::AppendSingleFrameProcessorEx
|
|
|
|
* @param bAutoFlush
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
virtual bool ConfigureAutoFlushPerFrame(bool bAutoFlush) = 0;
|
2022-11-06 12:30:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
AUKN_SYM AuSPtr<ICompressionInterceptor> NewDecompressionInterceptor(const DecompressInfo &info);
|
2023-07-27 16:26:23 +00:00
|
|
|
|
2022-11-06 12:30:06 +00:00
|
|
|
AUKN_SYM AuSPtr<ICompressionInterceptor> NewCompressionInterceptor(const CompressInfo &info);
|
|
|
|
}
|