Add CPP api for dqn file and lock
This commit is contained in:
		
							parent
							
								
									45bc637773
								
							
						
					
					
						commit
						886425eaa3
					
				
							
								
								
									
										50
									
								
								dqn.h
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								dqn.h
									
									
									
									
									
								
							| @ -998,6 +998,14 @@ typedef struct DqnFile | |||||||
| 	u32     permissionFlags; | 	u32     permissionFlags; | ||||||
| 	void   *handle; | 	void   *handle; | ||||||
| 	size_t  size; | 	size_t  size; | ||||||
|  | 
 | ||||||
|  | #if defined(DQN_CPP_MODE) | ||||||
|  | 	bool   Open (char    const *const path, const u32 permissionFlags_, const enum DqnFileAction action); | ||||||
|  | 	bool   OpenW(wchar_t const *const path, const u32 permissionFlags_, const enum DqnFileAction action); | ||||||
|  | 	size_t Write(u8 *const buffer, const size_t numBytesToWrite, const size_t fileOffset); | ||||||
|  | 	size_t Read (u8 *const buffer, const size_t numBytesToRead); | ||||||
|  | 	void   Close(); | ||||||
|  | #endif | ||||||
| } DqnFile; | } DqnFile; | ||||||
| 
 | 
 | ||||||
| // NOTE: W(ide) versions of functions only work on Win32, since Unix is UTF-8 compatible.
 | // NOTE: W(ide) versions of functions only work on Win32, since Unix is UTF-8 compatible.
 | ||||||
| @ -1055,6 +1063,13 @@ DQN_FILE_SCOPE f64  DqnTimer_NowInS (); | |||||||
| typedef struct DqnLock | typedef struct DqnLock | ||||||
| { | { | ||||||
| 	CRITICAL_SECTION win32Handle; | 	CRITICAL_SECTION win32Handle; | ||||||
|  | 
 | ||||||
|  | #if defined(DQN_CPP_MODE) | ||||||
|  | 	bool Init(const u32 spinCount = 16000); | ||||||
|  | 	void Acquire(); | ||||||
|  | 	void Release(); | ||||||
|  | 	void Delete(); | ||||||
|  | #endif | ||||||
| } DqnLock; | } DqnLock; | ||||||
| 
 | 
 | ||||||
| DQN_FILE_SCOPE bool DqnLock_Init   (DqnLock *const lock, const u32 spinCount = 16000); | DQN_FILE_SCOPE bool DqnLock_Init   (DqnLock *const lock, const u32 spinCount = 16000); | ||||||
| @ -5490,6 +5505,33 @@ void DqnIni_PropertyValueSet(DqnIni *ini, int section, int property, | |||||||
| 	#include <dirent.h>   // readdir()/opendir()/closedir() | 	#include <dirent.h>   // readdir()/opendir()/closedir() | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | // XPlatform > #DqnFileInternal CPP Implementation
 | ||||||
|  | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | bool DqnFile::Open(char const *const path, const u32 permissionFlags_, | ||||||
|  |                    const enum DqnFileAction action) | ||||||
|  | { | ||||||
|  | 	return DqnFile_Open(path, this, permissionFlags, action); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool DqnFile::OpenW(wchar_t const *const path, const u32 permissionFlags_, | ||||||
|  |                     const enum DqnFileAction action) | ||||||
|  | { | ||||||
|  | 	return DqnFile_OpenW(path, this, permissionFlags, action); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | size_t DqnFile::Write(u8 *const buffer, const size_t numBytesToWrite, const size_t fileOffset) | ||||||
|  | { | ||||||
|  | 	return DqnFile_Write(this, buffer, numBytesToWrite, fileOffset); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | size_t DqnFile::Read(u8 *const buffer, const size_t numBytesToRead) | ||||||
|  | { | ||||||
|  | 	return DqnFile_Read(*this, buffer, numBytesToRead); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void DqnFile::Close() { DqnFile_Close(this); } | ||||||
|  | 
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
| // XPlatform > #DqnFileInternal Implementation
 | // XPlatform > #DqnFileInternal Implementation
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
| @ -6055,6 +6097,14 @@ void DqnLock_Delete(DqnLock *const lock) | |||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | // Win32Platform > #DqnLock CPP Implementation
 | ||||||
|  | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | bool DqnLock::Init(const u32 spinCount) { return DqnLock_Init(this, spinCount); } | ||||||
|  | void DqnLock::Acquire()                 {        DqnLock_Acquire(this); } | ||||||
|  | void DqnLock::Release()                 {        DqnLock_Release(this); } | ||||||
|  | void DqnLock::Delete()                  {        DqnLock_Delete (this); } | ||||||
|  | 
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
| // Win32Platform > #DqnAtomic Implementation
 | // Win32Platform > #DqnAtomic Implementation
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user