#include "ale_c_wrapper.h" #include #include #include void encodeState(ale::ALEState* state, char* buf, int buf_len) { std::string str = state->serialize(); if (buf_len < int(str.length())) { throw new std::runtime_error( "Buffer is not big enough to hold serialized ale::ALEState. Please use " "encodeStateLen to determine the correct buffer size"); } std::memcpy(buf, str.data(), str.length()); } int encodeStateLen(ale::ALEState* state) { return state->serialize().length(); } ale::ALEState* decodeState(const char* serialized, int len) { std::string str(serialized, len); return new ale::ALEState(str); }