r5sdk/r5dev/public/utility/sigcache.cpp

37 lines
942 B
C++
Raw Normal View History

//===========================================================================//
//
// Purpose: Implementation of the CSigCache class.
//
//===========================================================================//
#include "core/stdafx.h"
#include "public/utility/binstream.h"
#include "sigcache.h"
void CSigCache::AddEntry(const char* pszPattern, const size_t nMaskLen, const uint64_t nRVA)
{
if (g_SigCache.m_bUseCache)
{
(*g_SigCache.m_Cache.mutable_smap())[string(pszPattern, nMaskLen)] = nRVA;
}
}
void CSigCache::WriteCache()
{
CIOStream writer("bin\\startup.smap", CIOStream::Mode_t::WRITE);
if (!writer.IsWritable())
{
// Error message..
return;
}
SigDBHeader_t header;
header.m_nMagic = SIGDB_MAGIC;
header.m_nVersion = SIGDB_VERSION;
GetSystemTimeAsFileTime(&header.m_FileTime);
const string svBuffer = m_Cache.SerializeAsString();
writer.Write(header);
writer.Write(svBuffer.data(), svBuffer.size());
}