64 lines
987 B
C++
64 lines
987 B
C++
#pragma once
|
|
#include "imemory.h"
|
|
|
|
class VectorMemroy : public IMemory
|
|
{
|
|
public:
|
|
virtual unsigned char* data()
|
|
{
|
|
return m_data.empty() ? nullptr : &m_data[0];
|
|
}
|
|
|
|
virtual size_t size()
|
|
{
|
|
return m_data.size();
|
|
}
|
|
|
|
std::vector<unsigned char>& buf()
|
|
{
|
|
return m_data;
|
|
}
|
|
|
|
|
|
void resize(int size)
|
|
{
|
|
m_data.resize(size);
|
|
}
|
|
|
|
private:
|
|
std::vector<unsigned char> m_data;
|
|
};
|
|
|
|
typedef std::shared_ptr<VectorMemroy> VectorMemroyPtr;
|
|
|
|
|
|
class FipMemory : public IMemory
|
|
{
|
|
public:
|
|
FipMemory(){}
|
|
virtual unsigned char *data()
|
|
{
|
|
unsigned char *p;
|
|
DWORD size;
|
|
mio.acquire(&p, &size);
|
|
return p;
|
|
}
|
|
|
|
virtual size_t size()
|
|
{
|
|
unsigned char *p;
|
|
DWORD size;
|
|
mio.acquire(&p, &size);
|
|
return size;
|
|
}
|
|
|
|
fipMemoryIO &io()
|
|
{
|
|
return mio;
|
|
}
|
|
|
|
private:
|
|
fipMemoryIO mio;
|
|
};
|
|
|
|
typedef std::shared_ptr<FipMemory> FipMemoryPtr; |