gmSL Service Classes: OperatingSystem Direct OS Access
The OperationgSystem Service Class
Section titled “The OperationgSystem Service Class”The service class OperatingSystem performs those operations that require direct access to the operating system that cannot implemented in a platform independent way. This implementation is provided for Windows platforms MSCPLAT. Other platforms would require their own version.
The method OperatingSystem_CopyFile
Section titled “The method OperatingSystem_CopyFile”Prototype
int OperatingSystem_CopyFile(char* SrcFile, char* DestFile);The OperatingSystem_CopyFile method does a file copy in as efficient a method as possible. If the destination file already exists, it will be overridden. Its parameters are as follows:
| Parameter | Description |
|---|---|
| SrcFile | Contains the name of the source file in null-terminated string form. |
| DestFile | Contains the name of the destination file in null-terminated form. |
If the copy succeeds, the return value is nonzero, else the return value is zero.
The method OperatingSystem_DeleteDirectory
Section titled “The method OperatingSystem_DeleteDirectory”Prototype
int OperatingSystem_DeleteDirectory(char* Directory);The OperatingSystem_DeleteDirectory method deletes a named directory. Its parameter is:
| Parameter | Description |
|---|---|
| Directory | Contains the name of the directory to be deleted in null-terminated string form. |
If the directory is successfully deleted, then a zero is returned. If the directory cannot be deleted, then a one is returned.
The method OperatingSystem_GetGuid
Section titled “The method OperatingSystem_GetGuid”Prototype
int OperatingSystem_GetGuid(char* guidStr,int length);The OperatingSystem_GetGuid method returns a created GUID string. A GUID is a Globally Unique Identifier, a unique 128-bit number that is used to identify a particular component, application, file, database entry, or user. This method uses the operating to create such an identifier in the commonly used string form. Each call to this method creates a new unique GUID. Its parameters are as follows:
| Parameter | Description |
|---|---|
| guidStr | Receives the GUID as obtained from the operating system. It is not null-terminated. |
| length | Specifies the length of guidStr. It is used to avoid overflow. No more than length characters will be copied into it. |
The method returns the length of the GUID string as returned.
The method OperatingSystem_GetFileInfo
Section titled “The method OperatingSystem_GetFileInfo”Prototype
int OperatingSystem_GetFileInfo(char* Filename,tOperatingSystem_FileInfo* FileInfo);The method OperatingSystem_GetFileInfo gets information about a specific file from the operating system. This information is as follows:
| Member | Description |
|---|---|
| FileName | Full name of file |
| Extension | Extension associated with file |
| LocalStart | Start of local name |
| TypeOfFile | The type of the file |
| DateModified | Date last modified |
| TimeModified | Time last modified |
| DateCreated | Date created |
| TimeCreated | Time created |
| DateAccessed | Date last accessed |
| TimeAccessed | Time last accessed |
| CurrentSize | Current size of file |
| Protection | Protection status |
| Mode | Mode of file |
The parameters of the method are as follows:
| Parameter | Description |
|---|---|
| Filename | Contains the name of the file in null-terminated form. |
| Fileinfo | Receives the information about the file as listed above. |
The method OperatingSystem_GetLibraryMethod
Section titled “The method OperatingSystem_GetLibraryMethod”Prototype
MethodHandle OperatingSystem_GetLibraryMethod(void* library,CONST char* methodName);The OperatingSystem_GetLibraryMethod method gets the execution handle to a method in a loaded a dynamic link library. Its parameters are as follows:
| Parameter | Description |
|---|---|
| library | Specifies the handle of the library containing the desired method obtained from the method OperatingSystem_LoadLibrary. |
| methodName | Contains the name of the method to be executed in null-terminated form. |
This method returns an execution handle to the method if all went well; else it returns a NULL.
The method OperatingSystem_GetTime
Section titled “The method OperatingSystem_GetTime”Prototype
int OperatingSystem_GetTime(void);The OperatingSystem_GetTime method returns the current time in milliseconds. It has no parameters.
The method OperatingSystem_GetProgramName
Section titled “The method OperatingSystem_GetProgramName”Prototype
void OperatingSystem_GetProgramName(char* name,int nName)The OperatingSystem_GetProgramName method obtains the name of the currently executing program. This name is typically used to determine the names of corresponding startup files. Its parameters are as follows:
| Parameter | Description |
|---|---|
| name | Receives the name of the executing program in null-terminated form. |
| nName | Specifies the size of the name return area and is used to avoid overflow. |
The method OperatingSystem_LoadLibrary
Section titled “The method OperatingSystem_LoadLibrary”Prototype
void* OperatingSystem_LoadLibrary(char* libName);The OperatingSystem_LoadLibrary method loads a dynamic link library and returns the handle to its information. Its parameter is:
| Parameter | Description |
|---|---|
| libName | Contains the name of the library to be loaded in null-terminated string form. |
This method returns an opaque handle to the loaded library information if all went well; else it returns a NULL.
The method OperatingSystem_MakeDirectory
Section titled “The method OperatingSystem_MakeDirectory”Prototype
int OperatingSystem_MakeDirectory(char* Directory);The OperatingSystem_MakeDirectory method makes a directory in the file system. Its parameter is:
| Parameter | Description |
|---|---|
| Directory | Contains the name of the directory to be created as a null-terminated string. |
If the directory is successfully created, then a zero is returned. If the directory cannot be created, then a one is returned.
The method OperatingSystem_ReadFileDirectory
Section titled “The method OperatingSystem_ReadFileDirectory”Prototype
int OperatingSystem_ReadFileDirectory(char* DirName,tOperatingSystem_FileInfo* FileInfo);The OperatingSystem_ReadFileDirectory method reads the file directory one entry at a time. It is used to obtain a listing of all files in a directory. The information about each file is stored in a tOperatingSystem_FileInfo structure whose members are as follows:
| Member | Description |
|---|---|
| FileName | Full name of file |
| Extension | Extension associated with file |
| LocalStart | Start of local name |
| TypeOfFile | The type of the file |
| DateModified | Date last modified |
| TimeModified | Time last modified |
| DateCreated | Date created |
| TimeCreated | Time created |
| DateAccessed | Date last accessed |
| TimeAccessed | Time last accessed |
| CurrentSize | Current size of file |
| Protection | Protection status |
| Mode | Mode of file |
| InternalInfo | Used internally |
The parameters of the method are as follows:
| Parameter | Description |
|---|---|
| DirName | Contains the name of the directory to be read on the initial call to this method. On subsequent calls this parameter is set to NULL. |
| FileInfo | Receives the tOperatingSystem_FileInfo member values for the current file. |
If information about a first or next file is being returned, then a zero is returned. If no more files are present, a one is returned.
The method OperatingSystem_UnloadLibrary
Section titled “The method OperatingSystem_UnloadLibrary”Prototype
void OperatingSystem_UnloadLibrary(void* library);The OperatingSystem_UnloadLibrary method unloads a dynamic link library. Its parameter is:
| Parameter | Description |
|---|---|
| library | Specifies the handle of the library to be unloaded as received from the method OperatingSystem_LoadLibrary. |