Beef Corlib
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
System.Platform Class Reference

Classes

struct  BfpCritSect
 
struct  BfpDynLib
 
struct  BfpEvent
 
struct  BfpFile
 
struct  BfpFileWatcher
 
struct  BfpFindFileData
 
struct  BfpProcess
 
struct  BfpSpawn
 
struct  BfpTimeStamp
 
struct  Hook
 

Public Types

enum  Result : int32 {
  Ok, UnknownError, InsufficientBuffer, NotSupported,
  NoResults, InvalidParameter, Locked, AlreadyExists,
  NotFound, ShareError, AccessError, PartialData,
  TempFileError, Timeout, NotEmpty, PipeListening
}
 
enum  BfpSystemResult : int32 { Ok = (int)Result.Ok, UnknownError = (int)Result.UnknownError, TempFileError = (int)Result.TempFileError }
 
enum  BfpFileWatcherFlags : int32 { None = 0, IncludeSubdirectories = 1 }
 
enum  BfpFileChangeKind : int32 {
  BfpFileChangeKind_Added, BfpFileChangeKind_Removed, BfpFileChangeKind_Modified, BfpFileChangeKind_Renamed,
  BfpFileChangeKind_Failed
}
 
enum  BfpProcessResult : int32 { Ok = (int)Result.Ok, NotFound = (int)Result.NotFound, InsufficientBuffer = (int)Result.InsufficientBuffer, UnknownError = (int)Result.UnknownError }
 
enum  BfpSpawnFlags : int32 {
  None = 0, ArgsIncludesTarget = 1, UseArgsFile = 2, UseArgsFile_Native = 4,
  UseArgsFile_UTF8 = 8, UseArgsFile_BOM = 0x10, UseShellExecute = 0x20, RedirectStdInput = 0x40,
  RedirectStdOutput = 0x80, RedirectStdError = 0x100, NoWindow = 0x200, ErrorDialog = 0x400,
  Window_Hide = 0x800, Window_Maximized = 0x1000, NoActivateWindow = 0x2000
}
 
enum  BfpKillFlags : int32 { None = 0, KillChildren = 1 }
 
enum  BfpSpawnResult : int32 { Ok = (int)Result.Ok, UnknownError = (int)Result.UnknownError }
 
enum  BfpEventFlags : int32 {
  None = 0, AllowAutoReset = 1, AllowManualReset = 2, InitiallySet_Auto = 4,
  InitiallySet_Manual = 8
}
 
enum  BfpEventResult : int32 { BfpEventResult_Ok = (int)Result.Ok, BfpEventResult_NotSupported = (int)Result.NotSupported }
 
enum  BfpLibResult : int32 { Ok = (int)Result.Ok, UnknownError = (int)Result.UnknownError, InsufficientBuffer = (int)Result.InsufficientBuffer }
 
enum  BfpFileResult : int32 {
  Ok = (int)Result.Ok, NoResults = (int)Result.NoResults, UnknownError = (int)Result.UnknownError, InvalidParameter = (int)Result.InvalidParameter,
  Locked = (int)Result.Locked, AlreadyExists = (int)Result.AlreadyExists, NotFound = (int)Result.NotFound, ShareError = (int)Result.ShareError,
  AccessError = (int)Result.AccessError, PartialData = (int)Result.PartialData, InsufficientBuffer = (int)Result.InsufficientBuffer, Timeout = (int)Result.Timeout,
  NotEmpty = (int)Result.NotEmpty, PipeListening = (int)Result.PipeListening
}
 
enum  BfpFileCreateKind : int32 { CreateAlways, CreateIfNotExists, OpenExisting, OpenAlways }
 
enum  BfpFileCreateFlags : int32 {
  None = 0, Read = 1, Write = 2, ShareRead = 4,
  ShareWrite = 8, ShareDelete = 0x10, Append = 0x20, Truncate = 0x40,
  WriteThrough = 0x80, DeleteOnClose = 0x100, NoBuffering = 0x200, NonBlocking = 0x400,
  AllowTimeouts = 0x800, Pipe = 0x1000
}
 
enum  BfpFileSeekKind : int32 { Absolute, Relative, FromEnd }
 
enum  BfpFileAttributes : int32 {
  None = 0, Normal = 1, Directory = 2, SymLink = 4,
  Device = 8, ReadOnly = 0x10, Hidden = 0x20, System = 0x40,
  Temporary = 0x80, Offline = 0x100, Encrypted = 0x200, Archive = 0x400
}
 
enum  BfpFileCopyKind : int32 { Always, IfNotExists, IfNewer }
 
enum  BfpFileStdKind : int32 { Out, Error, In }
 
enum  BfpFindFileFlags : int32 { None = 0, Files = 1, Directories = 2 }
 
enum  BfpSysDirectoryKind : int32 {
  Default, Home, System, Desktop,
  Desktop_Common, AppData_Local, AppData_LocalLow, AppData_Roaming,
  Programs, Programs_Common, Documents
}
 

Public Member Functions

static uint32 BfpSystem_TickCount ()
 
static uint32 BfpSystem_SetCrashRelaunchCmd (char8 *cmd)
 
static BfpTimeStamp BfpSystem_GetTimeStamp ()
 
static uint8 BfpSystem_InterlockedExchange8 (uint8 *ptr, uint8 val)
 
static uint16 BfpSystem_InterlockedExchange16 (uint16 *ptr, uint16 val)
 Returns the initial value in 'ptr'.
 
static uint32 BfpSystem_InterlockedExchange32 (uint32 *ptr, uint32 val)
 Returns the initial value in 'ptr'.
 
static uint64 BfpSystem_InterlockedExchange64 (uint64 *ptr, uint64 val)
 Returns the initial value in 'ptr'.
 
static uint8 BfpSystem_InterlockedExchangeAdd8 (uint8 *ptr, uint8 val)
 Returns the initial value in 'ptr'.
 
static uint16 BfpSystem_InterlockedExchangeAdd16 (uint16 *ptr, uint16 val)
 Returns the initial value in 'ptr'.
 
static uint32 BfpSystem_InterlockedExchangeAdd32 (uint32 *ptr, uint32 val)
 Returns the initial value in 'ptr'.
 
static uint64 BfpSystem_InterlockedExchangeAdd64 (uint64 *ptr, uint64 val)
 Returns the initial value in 'ptr'.
 
static uint8 BfpSystem_InterlockedCompareExchange8 (uint8 *ptr, uint8 oldVal, uint8 newVal)
 
static uint16 BfpSystem_InterlockedCompareExchange16 (uint16 *ptr, uint16 oldVal, uint16 newVal)
 
static uint32 BfpSystem_InterlockedCompareExchange32 (uint32 *ptr, uint32 oldVal, uint32 newVal)
 
static uint64 BfpSystem_InterlockedCompareExchange64 (uint64 *ptr, uint64 oldVal, uint64 newVal)
 
static void BfpSystem_GetExecutablePath (char8 *outStr, int32 *inOutStrSize, BfpSystemResult *outResult)
 
static void BfpSystem_GetEnvironmentStrings (char8 *outStr, int32 *inOutStrSize, BfpSystemResult *outResult)
 
static int32 BfpSystem_GetNumLogicalCPUs (BfpSystemResult *outResult)
 
static int64 BfpSystem_GetCPUTick ()
 
static int64 BfpSystem_GetCPUTickFreq ()
 
static void BfpSystem_CreateGUID (Guid *outGuid)
 
static void BfpSystem_GetComputerName (char8 *outStr, int32 *inOutStrSize, BfpSystemResult *outResult)
 
static int BfpThread_GetCurrentId ()
 
static BfpTLS * BfpTLS_Create (function[CallingConvention(.Stdcall)] void(void *) exitProc)
 
static void BfpTLS_Release (BfpTLS *tls)
 
static void BfpTLS_SetValue (BfpTLS *tls, void *value)
 
static void * BfpTLS_GetValue (BfpTLS *tls)
 
function void BfpDirectoryChangeFunc (BfpFileWatcher *watcher, void *userData, BfpFileChangeKind changeKind, char8 *directory, char8 *fileName, char8 *oldName)
 
static BfpFileWatcherBfpFileWatcher_WatchDirectory (char8 *path, BfpDirectoryChangeFunc callback, BfpFileWatcherFlags flags, void *userData, BfpFileResult *outResult)
 
static void BfpFileWatcher_Release (BfpFileWatcher *fileWatcher)
 
static bool BfpProcess_IsRemoteMachine (char8 *machineName)
 
static BfpProcessBfpProcess_GetById (char8 *machineName, int32 processId, BfpProcessResult *outResult)
 
static void BfpProcess_Enumerate (char8 *machineName, BfpProcess **outProcesses, int32 *inOutProcessesSize, BfpProcessResult *outResult)
 
static void BfpProcess_Release (BfpProcess *process)
 
static void BfpProcess_GetMainWindowTitle (BfpProcess *process, char8 *outTitle, int32 *inOutTitleSize, BfpProcessResult *outResult)
 
static void BfpProcess_GetProcessName (BfpProcess *process, char8 *outName, int32 *inOutNameSize, BfpProcessResult *outResult)
 
static int32 BfpProcess_GetProcessId (BfpProcess *process)
 
static bool BfpProcess_WaitFor (BfpProcess *process, int waitMS, int *outExitCode, BfpProcessResult *outResult)
 
static BfpSpawnBfpSpawn_Create (char8 *targetPath, char8 *args, char8 *workingDir, char8 *env, BfpSpawnFlags flags, BfpSpawnResult *outResult)
 
static void BfpSpawn_Release (BfpSpawn *spawn)
 
static void BfpSpawn_Kill (BfpSpawn *spawn, int32 exitCode, BfpKillFlags killFlags, BfpSpawnResult *outResult)
 
static bool BfpSpawn_WaitFor (BfpSpawn *spawn, int waitMS, int *outExitCode, BfpSpawnResult *outResult)
 
static void BfpSpawn_GetStdHandles (BfpSpawn *spawn, BfpFile **outStdIn, BfpFile **outStdOut, BfpFile **outStdErr)
 
static int BfpSpawn_GetProcessId (BfpSpawn *spawn)
 
static int BfpProcess_GetCurrentId ()
 
static BfpCritSectBfpCritSect_Create ()
 
static void BfpCritSect_Release (BfpCritSect *critSect)
 
static void BfpCritSect_Enter (BfpCritSect *critSect)
 
static bool BfpCritSect_TryEnter (BfpCritSect *critSect, int32 waitMS)
 
static void BfpCritSect_Leave (BfpCritSect *critSect)
 
static BfpEventBfpEvent_Create (BfpEventFlags flags)
 
static void BfpEvent_Release (BfpEvent *event)
 
static void BfpEvent_Set (BfpEvent *event, bool requireManualReset)
 
static void BfpEvent_Reset (BfpEvent *event, BfpEventResult *outResult)
 
static bool BfpEvent_WaitFor (BfpEvent *event, int32 waitMS)
 
static BfpDynLibBfpDynLib_Load (char8 *fileName)
 
static void BfpDynLib_Release (BfpDynLib *lib)
 
static void BfpDynLib_GetFilePath (BfpDynLib *lib, char8 *outPath, int32 *inOutPathSize, BfpLibResult *outResult)
 
static void * BfpDynLib_GetProcAddress (BfpDynLib *lib, char8 *name)
 
static void BfpDirectory_Create (char8 *name, BfpFileResult *outResult)
 
static void BfpDirectory_Rename (char8 *oldName, char8 *newName, BfpFileResult *outResult)
 
static void BfpDirectory_Delete (char8 *name, BfpFileResult *outResult)
 
static void BfpDirectory_GetCurrent (char8 *outPath, int32 *inOutPathSize, BfpFileResult *outResult)
 
static void BfpDirectory_SetCurrent (char8 *path, BfpFileResult *outResult)
 
static bool BfpDirectory_Exists (char8 *path)
 
static void BfpDirectory_GetSysDirectory (BfpSysDirectoryKind sysDirKind, char8 *outPath, int32 *inOutPathLen, BfpFileResult *outResult)
 
static BfpFileBfpFile_Create (char8 *name, BfpFileCreateKind createKind, BfpFileCreateFlags createFlags, BfpFileAttributes createdFileAttrs, BfpFileResult *outResult)
 
static BfpFileBfpFile_GetStd (BfpFileStdKind kind, BfpFileResult *outResult)
 
static int BfpFile_GetSystemHandle (BfpFile *file)
 
static void BfpFile_Release (BfpFile *file)
 
static int BfpFile_Write (BfpFile *file, void *buffer, int size, int timeoutMS, BfpFileResult *outResult)
 
static int BfpFile_Read (BfpFile *file, void *buffer, int size, int timeoutMS, BfpFileResult *outResult)
 
static void BfpFile_Flush (BfpFile *file)
 
static int64 BfpFile_GetFileSize (BfpFile *file)
 
static int64 BfpFile_Seek (BfpFile *file, int64 offset, BfpFileSeekKind seekKind)
 
static void BfpFile_Truncate (BfpFile *file, BfpFileResult *outResult)
 
static BfpTimeStamp BfpFile_GetTime_LastWrite (char8 *path)
 
static BfpFileAttributes BfpFile_GetAttributes (char8 *path, BfpFileResult *outResult)
 
static void BfpFile_SetAttributes (char8 *path, BfpFileAttributes attribs, BfpFileResult *outResult)
 
static void BfpFile_Copy (char8 *oldPath, char8 *newPath, BfpFileCopyKind copyKind, BfpFileResult *outResult)
 
static void BfpFile_Rename (char8 *oldPath, char8 *newPath, BfpFileResult *outResult)
 
static void BfpFile_Delete (char8 *path, BfpFileResult *outResult)
 
static bool BfpFile_Exists (char8 *path)
 
static void BfpFile_GetTempPath (char8 *outPath, int32 *inOutPathSize, BfpFileResult *outResult)
 
static void BfpFile_GetTempFileName (char8 *outName, int32 *inOutNameSize, BfpFileResult *outResult)
 
static void BfpFile_GetFullPath (char8 *inPath, char8 *outPath, int32 *inOutPathSize, BfpFileResult *outResult)
 
static void BfpFile_GetActualPath (char8 *inPath, char8 *outPath, int32 *inOutPathSize, BfpFileResult *outResult)
 
static BfpFindFileDataBfpFindFileData_FindFirstFile (char8 *path, BfpFindFileFlags flags, BfpFileResult *outResult)
 
static bool BfpFindFileData_FindNextFile (BfpFindFileData *findData)
 
static void BfpFindFileData_GetFileName (BfpFindFileData *findData, char8 *outName, int32 *inOutNameSize, BfpFileResult *outResult)
 
static BfpTimeStamp BfpFindFileData_GetTime_LastWrite (BfpFindFileData *findData)
 
static BfpTimeStamp BfpFindFileData_GetTime_Created (BfpFindFileData *findData)
 
static BfpTimeStamp BfpFindFileData_GetTime_Access (BfpFindFileData *findData)
 
static BfpFileAttributes BfpFindFileData_GetFileAttributes (BfpFindFileData *findData)
 
static int64 BfpFindFileData_GetFileSize (BfpFindFileData *findData)
 
static void BfpFindFileData_Release (BfpFindFileData *findData)
 

Static Public Member Functions

static bool SetStrHelper (StringView str, char8 *outStr, int32 *inOutSize, Result *outResult)
 
static Result< void, Platform.Result > GetStrHelper (String outStr, delegate void(char8 *outPtr, int32 *outSize, Result *outResult) func)
 
static Result< Span< T >, Platform.Result > GetSizedHelper< T > (delegate void(T *outPtr, int32 *outSize, Result *outResult) func)
 

Static Public Attributes

const bool IsSingleProcessor = false
 
const int ProcessorCount = 8