1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-23 00:39:29 +08:00
Files
Alas/blcrack/cracker/Dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.h
2025-11-01 00:23:46 +08:00

41 lines
710 B
C++

#pragma once
#include "dobby/common.h"
class CodeBufferBase {
public:
CodeBufferBase() {
}
public:
virtual CodeBufferBase *Copy();
void Emit8(uint8_t data);
void Emit16(uint16_t data);
void Emit32(uint32_t data);
void Emit64(uint64_t data);
template <typename T> T Load(int offset) {
return *(T *)(buffer_.data() + offset);
}
template <typename T> void Store(int offset, T value) {
*(T *)(buffer_.data() + offset) = value;
}
template <typename T> void Emit(T value) {
EmitBuffer((uint8_t *)&value, sizeof(value));
}
void EmitBuffer(uint8_t *buffer, int len);
uint8_t *GetBuffer();
size_t GetBufferSize();
private:
tinystl::vector<uint8_t> buffer_;
};