1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Exposed system handle for FileStream

This commit is contained in:
Brian Fiete 2021-07-03 05:29:50 -07:00
parent dc5701d473
commit 961e71c62a
5 changed files with 33 additions and 0 deletions

View file

@ -29,6 +29,16 @@ namespace System.IO
}
}
public int Handle
{
get
{
if (mBfpFile == null)
return 0;
return Platform.BfpFile_GetSystemHandle(mBfpFile);
}
}
public ~this()
{
Delete();
@ -233,6 +243,16 @@ namespace System.IO
protected int64 mBfpFilePos;
FileAccess mFileAccess;
public int Handle
{
get
{
if (mBfpFile == null)
return 0;
return Platform.BfpFile_GetSystemHandle(mBfpFile);
}
}
public this()
{

View file

@ -337,6 +337,8 @@ namespace System
[CallingConvention(.Stdcall), CLink]
public static extern BfpFile* BfpFile_GetStd(BfpFileStdKind kind, BfpFileResult* outResult);
[CallingConvention(.Stdcall), CLink]
public static extern int BfpFile_GetSystemHandle(BfpFile* file);
[CallingConvention(.Stdcall), CLink]
public static extern void BfpFile_Release(BfpFile* file);
[CallingConvention(.Stdcall), CLink]
public static extern int BfpFile_Write(BfpFile* file, void* buffer, int size, int timeoutMS, BfpFileResult* outResult);

View file

@ -413,6 +413,7 @@ enum BfpFileStdKind
BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_Create(const char* name, BfpFileCreateKind createKind, BfpFileCreateFlags createFlags, BfpFileAttributes createdFileAttr, BfpFileResult* outResult);
BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_GetStd(BfpFileStdKind kind, BfpFileResult* outResult);
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_GetSystemHandle(BfpFile* file);
BFP_EXPORT void BFP_CALLTYPE BfpFile_Release(BfpFile* file);
BFP_EXPORT void BFP_CALLTYPE BfpFile_Close(BfpFile* file, BfpFileResult* outResult);
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_Write(BfpFile* file, const void* buffer, intptr size, int timeoutMS, BfpFileResult* outResult);

View file

@ -1941,6 +1941,11 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_GetStd(BfpFileStdKind kind, BfpFileResu
return bfpFile;
}
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_GetSystemHandle(BfpFile* file)
{
return (intptr)file->mHandle;
}
BFP_EXPORT void BFP_CALLTYPE BfpFile_Release(BfpFile* file)
{
if ((file->mHandle != -1) && (!file->mIsStd))

View file

@ -2824,6 +2824,11 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_GetStd(BfpFileStdKind kind, BfpFileResu
return bfpFile;
}
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_GetSystemHandle(BfpFile* file)
{
return (intptr)file->mHandle;
}
BFP_EXPORT void BFP_CALLTYPE BfpFile_Release(BfpFile* file)
{
if ((file->mHandle != INVALID_HANDLE_VALUE) && (!file->mIsStd))