File(const std::string& fullpath, void* userdata);
File(const std::string& fullpath, const_sg_host_t host, void* userdata);
File(const File&) = delete;
File& operator=(const File&) = delete;
~File();
File(const std::string& fullpath, void* userdata);
File(const std::string& fullpath, const_sg_host_t host, void* userdata);
File(const File&) = delete;
File& operator=(const File&) = delete;
~File();
static File* open(const std::string& fullpath, void* userdata);
static File* open(const std::string& fullpath, const_sg_host_t host, void* userdata);
void close();
static File* open(const std::string& fullpath, void* userdata);
static File* open(const std::string& fullpath, const_sg_host_t host, void* userdata);
void close();