#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& buf() { return m_data; } void resize(int size) { m_data.resize(size); } private: std::vector m_data; }; typedef std::shared_ptr 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 FipMemoryPtr;