{ "reference": "EterBase/FileBase.cpp", "reference_sha256": "262fcad3ae6ec2ee5c988c1beea0cfa2cc2adffc5e544fe36885bef1dc6dc71d", "priority": "P4", "contracts": [], "functions": { "CFileBase::CFileBase": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::CFileBase" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Same member initialisation." }, "CFileBase::~CFileBase": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::~CFileBase" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Same (Destroy)." }, "CFileBase::GetFileName": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::GetFileName" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Verbatim (m_filename)." }, "CFileBase::Destroy": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Destroy" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Same (Close, m_dwSize = 0)." }, "CFileBase::Close": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Close" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. CloseHandle -> fclose." }, "CFileBase::Create": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Create" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. CreateFile modes kept: read = OPEN_EXISTING, write = OPEN_ALWAYS read/write (r+b, else w+b: no truncation). On POSIX a missing exact spelling falls back to a case-insensitive per-component match (NTFS names, e.g. pack/Index 'Etc' for ETC.eix)." }, "CFileBase::Size": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Size" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Verbatim (m_dwSize)." }, "CFileBase::SeekCur": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::SeekCur" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. SetFilePointer(FILE_CURRENT) with a NULL high part takes the DWORD as a signed distance -> fseek(LONG(size), SEEK_CUR)." }, "CFileBase::Seek": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Seek" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. Clamp to m_dwSize verbatim; SetFilePointer(FILE_BEGIN) -> fseek(SEEK_SET)." }, "CFileBase::GetPosition": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::GetPosition" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. SetFilePointer(0, FILE_CURRENT) -> ftell." }, "CFileBase::Write": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Write" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. WriteFile -> fwrite (false on a short write), then m_dwSize from the stream size as 40250 re-reads GetFileSize." }, "CFileBase::Read": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::Read" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 wraps a Win32 HANDLE; the port keeps a stdio FILE* in m_hFile. ReadFile succeeds on a short read at end of file; fread + !ferror keeps that." }, "CFileBase::IsNull": { "status": "PORTED", "impl": [ "src/platform/EterBase/FileBase.cpp:CFileBase::IsNull" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Verbatim (!m_hFile)." } } }