mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 07:07:45 +00:00

Requires the oodle2base.h and oodle2net.h header files, and oo2net_9_win64.dll, to be placed in /deps/Oodle/ - they are not included here
28 lines
No EOL
1 KiB
C++
28 lines
No EOL
1 KiB
C++
#include "Oodle.h"
|
|
|
|
using namespace Sapphire;
|
|
|
|
Network::Oodle::Oodle() :
|
|
m_htbits(19)
|
|
{
|
|
auto stateSize = OodleNetwork1UDP_State_Size();
|
|
auto sharedSize = OodleNetwork1_Shared_Size( m_htbits );
|
|
|
|
m_state = std::vector< uint8_t >( stateSize, 0 );
|
|
m_shared = std::vector< uint8_t >( sharedSize, 0 );
|
|
m_window = std::vector< uint8_t >( 0x8000, 0 );
|
|
|
|
oodleInit();
|
|
}
|
|
|
|
void Network::Oodle::oodleInit()
|
|
{
|
|
OodleNetwork1_Shared_SetWindow( (OodleNetwork1_Shared*) &m_shared[0], m_htbits, &m_window[0], (int) m_window.size() );
|
|
OodleNetwork1UDP_Train( (OodleNetwork1UDP_State*) &m_state[0], (OodleNetwork1_Shared*) &m_shared[0], nullptr, nullptr, 0 );
|
|
}
|
|
|
|
bool Network::Oodle::oodleDecode( const std::vector< uint8_t > &enc, uint32_t encSize, std::vector< uint8_t > &dec, uint32_t decSize )
|
|
{
|
|
OodleNetwork1_Shared_SetWindow( (OodleNetwork1_Shared*) &m_shared[0], m_htbits, &m_window[0], (int) m_window.size() );
|
|
return OodleNetwork1UDP_Decode( (OodleNetwork1UDP_State*) &m_state[0], (OodleNetwork1_Shared*) &m_shared[0], &enc[0], encSize, &dec[0], decSize );
|
|
} |