Typedefs | |
typedef struct GWEN_FSLOCK | GWEN_FSLOCK |
Enumerations | |
enum | GWEN_FSLOCK_RESULT { GWEN_FSLock_ResultOk = 0, GWEN_FSLock_ResultError, GWEN_FSLock_ResultTimeout, GWEN_FSLock_ResultBusy, GWEN_FSLock_ResultNoLock, GWEN_FSLock_ResultUserAbort } |
enum | GWEN_FSLOCK_TYPE { GWEN_FSLock_TypeUnknown = 0, GWEN_FSLock_TypeFile, GWEN_FSLock_TypeDir } |
Functions | |
GWENHYWFAR_API void | GWEN_FSLock_Attach (GWEN_FSLOCK *fl) |
GWENHYWFAR_API void | GWEN_FSLock_free (GWEN_FSLOCK *fl) |
GWENHYWFAR_API const char * | GWEN_FSLock_GetName (const GWEN_FSLOCK *fl) |
GWENHYWFAR_API GWEN_FSLOCK_RESULT | GWEN_FSLock_Lock (GWEN_FSLOCK *fl, int timeout, uint32_t gid) |
GWENHYWFAR_API GWEN_FSLOCK * | GWEN_FSLock_new (const char *fname, GWEN_FSLOCK_TYPE t) |
GWENHYWFAR_API GWEN_FSLOCK_RESULT | GWEN_FSLock_Unlock (GWEN_FSLOCK *fl) |
The files in this group provide a very simple lock mechanism. When a file is to be locked a lockfile is created exclusively. If this lockfile can not be created exclusively (because it already exists) the file is assumed to be locked. This group can lock files and folders. For folders the lockfile name consists of the foldername plus "/.dir.lck", for files it is the filename plus ".lck". This only works if you have write-access to the folder or, if locking a file, to the folder containing the file to be locked.
typedef struct GWEN_FSLOCK GWEN_FSLOCK |
enum GWEN_FSLOCK_RESULT |
enum GWEN_FSLOCK_TYPE |
GWENHYWFAR_API void GWEN_FSLock_Attach | ( | GWEN_FSLOCK * | fl | ) |
GWENHYWFAR_API void GWEN_FSLock_free | ( | GWEN_FSLOCK * | fl | ) |
GWENHYWFAR_API const char* GWEN_FSLock_GetName | ( | const GWEN_FSLOCK * | fl | ) |
GWENHYWFAR_API GWEN_FSLOCK_RESULT GWEN_FSLock_Lock | ( | GWEN_FSLOCK * | fl, | |
int | timeout, | |||
uint32_t | gid | |||
) |
This function tries to acquire a lock for the given file/folder. It waits if necessary (using GWEN_Gui_ProgressStart) while waiting.
fl | fslock object | |
timeout | timeout in milliseconds (special values are GWEN_TIMEOUT_NONE (which does not wait at all) and GWEN_TIMEOUT_FOREVER (which waits forever). |
Referenced by GWEN_Crypt_TokenFile__OpenFile(), GWEN_DB_WriteFile(), GWEN_DBIO_ExportToFile(), and GWEN_DBIO_ImportFromFile().
GWENHYWFAR_API GWEN_FSLOCK* GWEN_FSLock_new | ( | const char * | fname, | |
GWEN_FSLOCK_TYPE | t | |||
) |
GWENHYWFAR_API GWEN_FSLOCK_RESULT GWEN_FSLock_Unlock | ( | GWEN_FSLOCK * | fl | ) |
This function removes a lock.
fl | fslock object |
Referenced by GWEN_Crypt_TokenFile__CloseFile(), GWEN_Crypt_TokenFile__OpenFile(), GWEN_DB_WriteFile(), GWEN_DBIO_ExportToFile(), and GWEN_DBIO_ImportFromFile().