feat: add copy constructor and getId method for GMLIB_BinaryStream

This commit is contained in:
子沐呀
2024-12-17 20:36:12 +08:00
Unverified
parent 4c57b04b66
commit cf8076a9fc
3 changed files with 42 additions and 9 deletions
+12
View File
@@ -11,6 +11,15 @@ public:
void cretateBinaryStream(uint id) { mBinaryStream[id] = std::make_shared<GMLIB_BinaryStream>(); }
uint64 copyBinaryStream(uint id) {
auto nextId = getNextId();
cretateBinaryStream(nextId);
if(auto bs = getBinaryStream(nextId); bs !=nullptr){
*getBinaryStream(nextId)->mBuffer = *getBinaryStream(id)->mBuffer;
}
return nextId;
}
void removeBinaryStream(uint64 id) { mBinaryStream.erase(id); }
std::shared_ptr<GMLIB_BinaryStream> getBinaryStream(uint64 id) {
@@ -46,6 +55,9 @@ void Export_BinaryStream_API() {
BinaryStreamManager.cretateBinaryStream(id);
return id;
});
RemoteCall::exportAs("GMLIB_BinaryStream_API", "copy", [](uint64 id) -> uint64 {
return BinaryStreamManager.copyBinaryStream(id);
});
RemoteCall::exportAs("GMLIB_BinaryStream_API", "reset", [](uint64 id) -> void {
if (BinaryStreamManager.getBinaryStream(id) == nullptr) BinaryStreamManager.cretateBinaryStream(id);
else BinaryStreamManager.getBinaryStream(id)->reset();