mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-08 15:29:48 -10:00
This adds some auto-closing code to the scripting API of the CFile system. If a file has to be auto-closed then an error will be displayed to let the the script writer know that something is wrong. This should not break existing scripts since causing file handle leaks should never happen and if it does, this will make it easier to find these issues.
31 lines
491 B
C++
31 lines
491 B
C++
|
|
#pragma once
|
|
|
|
#include "scripting/ade_api.h"
|
|
#include "cfile/cfile.h"
|
|
|
|
namespace scripting {
|
|
namespace api {
|
|
|
|
class cfile_h {
|
|
std::unique_ptr<CFILE> _cfp;
|
|
|
|
public:
|
|
explicit cfile_h(CFILE* cfp = nullptr);
|
|
~cfile_h();
|
|
|
|
cfile_h(cfile_h&& other) noexcept = default; // NOLINT
|
|
cfile_h& operator=(cfile_h&& other) noexcept = default; // NOLINT
|
|
|
|
void close();
|
|
|
|
bool isValid() const;
|
|
|
|
CFILE* get() const;
|
|
};
|
|
|
|
DECLARE_ADE_OBJ(l_File, cfile_h);
|
|
|
|
} // namespace api
|
|
} // namespace scripting
|