Initialize callbacks with better error messages

pull/2/head
Francesco Bertolaccini 2016-01-31 21:23:40 +01:00
parent c2b56cf342
commit 10f87aa9ce
1 changed files with 48 additions and 45 deletions

View File

@ -145,51 +145,54 @@ namespace SharpPhysFS
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void FnEnumerateFilesCallback(string s, EnumFilesCallback c, IntPtr ptr); public delegate void FnEnumerateFilesCallback(string s, EnumFilesCallback c, IntPtr ptr);
public static FnGetLinkedVersion PHYSFS_getLinkedVersion; // When the callbacks are not yet initialized, instead of throwing a
public static FnInit PHYSFS_init; // null reference exception we explain the problem.
public static FnDeinit PHYSFS_deinit; // I think it makes for a more graceful failure.
public static FnSupportedArchiveTypes PHYSFS_supportedArchiveTypes; public static FnGetLinkedVersion PHYSFS_getLinkedVersion = (ref Version v) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnFreeList PHYSFS_freeList; public static FnInit PHYSFS_init = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastError PHYSFS_getLastError; public static FnDeinit PHYSFS_deinit = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastError PHYSFS_getDirSeparator; public static FnSupportedArchiveTypes PHYSFS_supportedArchiveTypes = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnPermitSymbolicLinks PHYSFS_permitSymbolicLinks; public static FnFreeList PHYSFS_freeList = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSupportedArchiveTypes PHYSFS_getCdRomDirs; public static FnGetLastError PHYSFS_getLastError = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastError PHYSFS_getBaseDir; public static FnGetLastError PHYSFS_getDirSeparator = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastError PHYSFS_getUserDir; public static FnPermitSymbolicLinks PHYSFS_permitSymbolicLinks = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastError PHYSFS_getWriteDir; public static FnSupportedArchiveTypes PHYSFS_getCdRomDirs = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_setWriteDir; public static FnGetLastError PHYSFS_getBaseDir = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnAddToSearchPath PHYSFS_addToSearchPath; public static FnGetLastError PHYSFS_getUserDir = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_removeFromSearchPath; public static FnGetLastError PHYSFS_getWriteDir = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSupportedArchiveTypes PHYSFS_getSearchPath; public static FnSetWriteDir PHYSFS_setWriteDir = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetSaneConfig PHYSFS_setSaneConfig; public static FnAddToSearchPath PHYSFS_addToSearchPath = (a, b) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_mkdir; public static FnSetWriteDir PHYSFS_removeFromSearchPath = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_delete; public static FnSupportedArchiveTypes PHYSFS_getSearchPath = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_getRealDir; public static FnSetSaneConfig PHYSFS_setSaneConfig = (a, b, c, d, e) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_enumerateFiles; public static FnSetWriteDir PHYSFS_mkdir = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_exists; public static FnSetWriteDir PHYSFS_delete = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_isDirectory; public static FnEnumerateFiles PHYSFS_getRealDir = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetWriteDir PHYSFS_isSymbolicLink; public static FnEnumerateFiles PHYSFS_enumerateFiles = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetLastModTime PHYSFS_getLastModTime; public static FnSetWriteDir PHYSFS_exists = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_openWrite; public static FnSetWriteDir PHYSFS_isDirectory = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_openAppend; public static FnSetWriteDir PHYSFS_isSymbolicLink = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_openRead; public static FnGetLastModTime PHYSFS_getLastModTime = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnClose PHYSFS_close; public static FnEnumerateFiles PHYSFS_openWrite = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnRead PHYSFS_read; public static FnEnumerateFiles PHYSFS_openAppend = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnRead PHYSFS_write; public static FnEnumerateFiles PHYSFS_openRead = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnClose PHYSFS_eof; public static FnClose PHYSFS_close = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnTell PHYSFS_tell; public static FnRead PHYSFS_read = (a, b, c, d) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSeek PHYSFS_seek; public static FnRead PHYSFS_write = (a, b, c,d ) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnFileLength PHYSFS_fileLength; public static FnClose PHYSFS_eof = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSeek PHYSFS_setBuffer; public static FnTell PHYSFS_tell = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnClose PHYSFS_flush; public static FnSeek PHYSFS_seek = (a, b) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnDeinit PHYSFS_isInit; public static FnFileLength PHYSFS_fileLength = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnDeinit PHYSFS_symbolicLinksPermitted; public static FnSeek PHYSFS_setBuffer = (a, b) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnSetAllocator PHYSFS_setAllocator; public static FnClose PHYSFS_flush = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnMount PHYSFS_mount; public static FnDeinit PHYSFS_isInit = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFiles PHYSFS_getMountPoint; public static FnDeinit PHYSFS_symbolicLinksPermitted = () => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetCdRomDirsCallback PHYSFS_getCdRomDirsCallback; public static FnSetAllocator PHYSFS_setAllocator = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetCdRomDirsCallback PHYSFS_getSearchPathCallback; public static FnMount PHYSFS_mount = (a, b, c) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFilesCallback PHYSFS_enumerateFilesCallback; public static FnEnumerateFiles PHYSFS_getMountPoint = (a) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetCdRomDirsCallback PHYSFS_getCdRomDirsCallback = (a, b) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnGetCdRomDirsCallback PHYSFS_getSearchPathCallback = (a, b) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static FnEnumerateFilesCallback PHYSFS_enumerateFilesCallback = (a, b, c) => { throw new InvalidOperationException("Callbacks not initialized yet"); };
public static void SetUpInterop() public static void SetUpInterop()
{ {