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;
|