//BEGIN_LICENSE // // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. // //END_LICENSE //BEGIN_HISTORY // // Author: Michael E. Brasher // // $Log: SystemWindows.cpp,v $ // Revision 1.4 2001/04/12 21:59:39 mike // *** empty log message *** // // Revision 1.3 2001/04/12 07:25:20 mike // Replaced ACE with new Channel implementation. // Removed all ACE dependencies. // // Revision 1.1 2001/04/11 00:23:44 mike // new files // // //END_HISTORY #include "System.h" PEGASUS_NAMESPACE_BEGIN #include #include #include #include #include #include #include #define ACCESS_EXISTS 0 #define ACCESS_WRITE 2 #define ACCESS_READ 4 #define ACCESS_READ_AND_WRITE 6 void System::getCurrentTime(Uint32& seconds, Uint32& milliseconds) { FILETIME ft; GetSystemTimeAsFileTime(&ft); ULARGE_INTEGER largeInt = { ft.dwLowDateTime, ft.dwHighDateTime }; largeInt.QuadPart -= 0x19db1ded53e8000; seconds = long(largeInt.QuadPart / (10000 * 1000)); milliseconds = long((largeInt.QuadPart % (10000 * 1000)) / 10); } void System::sleep(Uint32 seconds) { Sleep(seconds * 1000); } Boolean System::exists(const char* path) { return _access(path, ACCESS_EXISTS) == 0; } Boolean System::canRead(const char* path) { return _access(path, ACCESS_READ) == 0; } Boolean System::canWrite(const char* path) { return _access(path, ACCESS_WRITE) == 0; } Boolean System::getCurrentDirectory(char* path, Uint32 size) { return GetCurrentDirectory(size, path) != 0; } Boolean System::isDirectory(const char* path) { struct stat st; if (stat(path, &st) != 0) return false; return (st.st_mode & _S_IFDIR) != 0; } Boolean System::changeDirectory(const char* path) { return chdir(path) == 0; } Boolean System::makeDirectory(const char* path) { return _mkdir(path) == 0; } Boolean System::getFileSize(const char* path, Uint32& size) { struct stat st; if (stat(path, &st) != 0) return false; size = st.st_size; return true; } Boolean System::removeDirectory(const char* path) { return rmdir(path) == 0; } Boolean System::removeFile(const char* path) { return unlink(path) == 0; } Boolean System::renameFile(const char* oldPath, const char* newPath) { return rename(oldPath, newPath) == 0; } DynamicLibraryHandle System::loadDynamicLibrary(const char* fileName) { return DynamicLibraryHandle(LoadLibrary(fileName)); } DynamicSymbolHandle System::loadDynamicSymbol( DynamicLibraryHandle libraryHandle, const char* symbolName) { return DynamicSymbolHandle(GetProcAddress( (HINSTANCE)libraryHandle, symbolName)); } PEGASUS_NAMESPACE_END