- Class OSD_EnvironmentIterator is removed (not used, and would definitely fail under Windows if tried)
- Methods UserId() and GroupId() removed from OSD_FileNode (cannot be made portable, as there is no integer IDs of user and group on Windows)
- Draw_ProgressIndicator corrected to properly pass address via Tcl
- OSD_File.cxx: local function is refactored to avoid senseless encoding / decoding of results
- OSD_Process::UserId() method removed, as it cannot be made cross-platform (no integer IDs on Windows)
- OSD_Thread: use WinAPI conversion functions to avoid warnings
- OSD_WNT.cxx: recursion counter passed via function argument instead of TLS
- TDF_LabelMapHasher revised to use correct hasher function for an address
for (itLS.Initialize(theLastShape);itLS.More();itLS.Next()) {
const TopoDS_Face& TopFace = TopoDS::Face(itLS.Value());
if (!FF.IsSame(TopFace)) {
- TopExp_Explorer ExpE;
for (ExpE.Init(FF,TopAbs_EDGE);ExpE.More() && !Found ;ExpE.Next()) {
const TopoDS_Edge& E1 = TopoDS::Edge(ExpE.Current());
TopoDS_Vertex V1,V2;
if ( argv[i][1] == 't' ) Draw_ProgressIndicator::DefaultTextMode() = turn;
else if ( argv[i][1] == 'g' ) Draw_ProgressIndicator::DefaultGraphMode() = turn;
else if ( ! strcmp ( argv[i], "-stop" ) && i+1 < argc ) {
- Draw_ProgressIndicator::StopIndicator() = atol(argv[++i]);
+ Standard_Address aPtr = 0;
+ if (sscanf (argv[++i], "%p", &aPtr) == 1)
+ Draw_ProgressIndicator::StopIndicator() = aPtr;
return 0;
}
}
".xprogress.bar create rectangle 2 2 2 21 -fill blue -tags progress;"
".xprogress.bar create rectangle 2 2 2 21 -outline black -tags progress_next;"
"message .xprogress.text -width 400 -text \"Progress 0%%\";"
- "button .xprogress.stop -text \"Break\" -relief groove -width 9 -command {XProgress -stop %ld};"
- "pack .xprogress.bar .xprogress.text .xprogress.stop -side top;",
- (long)(void*)this );
+ "button .xprogress.stop -text \"Break\" -relief groove -width 9 -command {XProgress -stop %p};"
+ "pack .xprogress.bar .xprogress.text .xprogress.stop -side top;", this );
((Draw_Interpretor*)myDraw)->Eval ( command );
myShown = Standard_True;
}
Standard_Boolean Draw_ProgressIndicator::UserBreak()
{
- if ( StopIndicator() == (long)(void*)this ) {
+ if ( StopIndicator() == this ) {
// cout << "Progress Indicator - User Break: " << StopIndicator() << ", " << (void*)this << endl;
myBreak = Standard_True;
((Draw_Interpretor*)myDraw)->Eval ( "XProgress -stop 0" );
//purpose :
//=======================================================================
-Standard_Integer &Draw_ProgressIndicator::StopIndicator ()
+Standard_Address &Draw_ProgressIndicator::StopIndicator ()
{
- static Standard_Integer stopIndicator = 0;
+ static Standard_Address stopIndicator = 0;
return stopIndicator;
}
#define _Draw_ProgressIndicator_HeaderFile
#include <Standard.hxx>
-#include <Standard_Type.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_Address.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Size.hxx>
#include <Message_ProgressIndicator.hxx>
#include <Draw_Interpretor.hxx>
-
class Draw_ProgressIndicator;
DEFINE_STANDARD_HANDLE(Draw_ProgressIndicator, Message_ProgressIndicator)
//! Get/Set default values for output modes
Standard_EXPORT static Standard_Boolean& DefaultGraphMode();
- //! Internal method for implementation of UserBreak mechanism
- Standard_EXPORT static Standard_Integer& StopIndicator();
-
-
+ //! Internal method for implementation of UserBreak mechanism;
+ //! note that it uses static variable and thus not thread-safe!
+ Standard_EXPORT static Standard_Address& StopIndicator();
DEFINE_STANDARD_RTTI(Draw_ProgressIndicator,Message_ProgressIndicator)
-protected:
-
-
-
-
private:
-
-
Standard_Boolean myTextMode;
Standard_Boolean myGraphMode;
Standard_Address myDraw;
Standard_Integer myUpdateTime;
Standard_Size myLastUpdate;
Standard_Size myStartTime;
-
-
};
-
-
-
-
-
-
#endif // _Draw_ProgressIndicator_HeaderFile
OSD_Disk.hxx
OSD_Environment.cxx
OSD_Environment.hxx
-OSD_EnvironmentIterator.cxx
-OSD_EnvironmentIterator.hxx
OSD_Error.cxx
OSD_Error.hxx
OSD_ErrorList.hxx
+++ /dev/null
-// Copyright (c) 1998-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _WIN32
-
-//---------- All Systems except windowsNT : ----------------------------------
-
-#include <OSD_Environment.hxx>
-#include <OSD_EnvironmentIterator.hxx>
-#include <OSD_OSDError.hxx>
-#include <OSD_WhoAmI.hxx>
-
-//const OSD_WhoAmI Iam = OSD_WEnvironmentIterator;
-#ifdef __APPLE__
- #import <TargetConditionals.h>
- #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
- extern char **environ;
- #else
- #include <crt_externs.h>
- #define environ (*_NSGetEnviron())
- #endif
-#else
- extern char **environ;
-#endif
-
-OSD_EnvironmentIterator::OSD_EnvironmentIterator(){
- myCount = 0;
-}
-
-// For Windows NT compatibility
-
-void OSD_EnvironmentIterator::Destroy () {}
-
-// Is there another environment variable entry ?
-
-Standard_Boolean OSD_EnvironmentIterator::More(){
- if (environ[myCount+1] == NULL) return(Standard_False);
- else return(Standard_True);
-}
-
-// Find next environment variable
-
-void OSD_EnvironmentIterator::Next(){
- if (More()) myCount++;
-}
-
-
-OSD_Environment OSD_EnvironmentIterator::Values(){
- TCollection_AsciiString name,value;
-
- name = environ[myCount]; // Copy environment variable
-
-// Pour DEBUG cout << name << endl;
-
- value = &environ[myCount][name.Search("=")]; // Gets its value
- if (name.Length() != 0){
- name = name.Token("="); // Gets its name
- }
-
- OSD_Environment result(name,value);
- return(result);
-}
-
-
-void OSD_EnvironmentIterator::Reset(){
- myError.Reset();
-}
-
-Standard_Boolean OSD_EnvironmentIterator::Failed()const{
- return( myError.Failed());
-}
-
-void OSD_EnvironmentIterator::Perror() {
- myError.Perror();
-}
-
-
-Standard_Integer OSD_EnvironmentIterator::Error()const{
- return( myError.Error());
-}
-
-#else
-
-//------------------------------------------------------------------------
-//------------------- Windows NT sources for OSD_Directory --------------
-//------------------------------------------------------------------------
-
-#define STRICT
-#include <windows.h>
-
-
-#include <OSD_Environment.hxx>
-#include <OSD_EnvironmentIterator.hxx>
-#include <OSD_OSDError.hxx>
-
-OSD_EnvironmentIterator :: OSD_EnvironmentIterator () {
-
- myEnv = GetEnvironmentStrings ();
- myCount = ( Standard_Integer )myEnv;
-
-} // end constructor
-
-void OSD_EnvironmentIterator :: Destroy () {
-
- FreeEnvironmentStrings ( ( LPTSTR )myEnv );
-
-} // end OSD_EnvironmentIterator :: Destroy
-
-Standard_Boolean OSD_EnvironmentIterator :: More () {
-
- return *( ( Standard_CString )myCount ) ? Standard_True : Standard_False;
-
-} // end OSD_EnvironmentIterator :: More
-
-void OSD_EnvironmentIterator :: Next () {
-
- if ( More () ) {
-
- while ( *( Standard_CString )myCount ) ++myCount;
-
- ++myCount;
-
- } // end if
-
-} // end OSD_EnvironmentIterator :: Next
-
-OSD_Environment OSD_EnvironmentIterator :: Values () {
-
- TCollection_AsciiString env, name, value;
-
- env = ( Standard_CString )myCount;
-
- name = env.Token ( TEXT( "=" ), 1 );
- value = env.Token ( TEXT( "=" ), 2 );
-
- if ( env.Value ( 1 ) == TEXT( '=' ) ) name.Insert ( 1, TEXT( '=' ) );
-
- return OSD_Environment ( name, value );
-
-} // end OSD_EnvironmentIterator :: Values
-
-Standard_Boolean OSD_EnvironmentIterator :: Failed () const {
-
- return myError.Failed ();
-
-} // end OSD_EnvironmentIterator :: Failed
-
-void OSD_EnvironmentIterator :: Reset () {
-
- myError.Reset ();
-
-} // end OSD_EnvironmentIterator :: Reset
-
-void OSD_EnvironmentIterator :: Perror () {
-
- myError.Perror ();
-
-} // end OSD_EnvironmentIterator :: Perror
-
-Standard_Integer OSD_EnvironmentIterator :: Error () const {
-
- return myError.Error ();
-
-} // end OSD_EnvironmentIterator :: Error
-
-#endif
+++ /dev/null
-// Created on: 1992-09-11
-// Created by: Stephan GARNAUD
-// Copyright (c) 1992-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _OSD_EnvironmentIterator_HeaderFile
-#define _OSD_EnvironmentIterator_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <Standard_Address.hxx>
-#include <Standard_Integer.hxx>
-#include <OSD_Error.hxx>
-#include <Standard_Boolean.hxx>
-class OSD_OSDError;
-class OSD_Environment;
-
-
-//! This allows consultation of every environment variable.
-//! There is no specific order of results.
-class OSD_EnvironmentIterator
-{
-public:
-
- DEFINE_STANDARD_ALLOC
-
-
- //! Instantiates Object as Iterator;
- Standard_EXPORT OSD_EnvironmentIterator();
-
- Standard_EXPORT void Destroy();
-~OSD_EnvironmentIterator()
-{
- Destroy();
-}
-
- //! Returns TRUE if there are other environment variables.
- Standard_EXPORT Standard_Boolean More();
-
- //! Sets the iterator to the next item.
- //! Returns the item value corresponding to the current
- //! position of the iterator.
- Standard_EXPORT void Next();
-
- //! Returns the next environment variable found.
- Standard_EXPORT OSD_Environment Values();
-
- //! Returns TRUE if an error occurs
- Standard_EXPORT Standard_Boolean Failed() const;
-
- //! Resets error counter to zero
- Standard_EXPORT void Reset();
-
- //! Raises OSD_Error
- Standard_EXPORT void Perror();
-
- //! Returns error number if 'Failed' is TRUE.
- Standard_EXPORT Standard_Integer Error() const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-
-
- Standard_Address myEnv;
- Standard_Integer myCount;
- OSD_Error myError;
-
-
-};
-
-
-
-
-
-
-
-#endif // _OSD_EnvironmentIterator_HeaderFile
BOOL __fastcall _osd_print (const Standard_PCharacter, const wchar_t* );
static void __fastcall _test_raise ( HANDLE, Standard_CString );
-static DWORDLONG __fastcall _get_line ( Standard_PCharacter&, DWORD );
+static Standard_Integer __fastcall _get_line (Standard_PCharacter& buffer, DWORD dwBuffSize, LONG& theSeekPos);
static int __fastcall _get_buffer ( HANDLE, Standard_PCharacter&, DWORD, BOOL, BOOL );
static DWORD __fastcall _get_access_mask ( OSD_SingleProtection );
static DWORD __fastcall _get_dir_access_mask ( OSD_SingleProtection prt );
const Standard_Integer NByte, Standard_Integer& NbyteRead
) {
- DWORDLONG status;
DWORD dwBytesRead;
DWORD dwDummy;
Standard_Character peekChar;
Standard_PCharacter ppeekChar;
Standard_PCharacter cBuffer;
- Standard_CString eos;
- DWORD dwSeekPos;
+ LONG aSeekPos;
if ( OSD_File::KindOfFile ( ) == OSD_DIRECTORY ) {
Standard_ProgramError::Raise("OSD_File::Read : it is a directory");
if ( myIO & FLAG_FILE ) {
- if (!ReadFile (myFileHandle, cBuffer, (DWORD)NByte, &dwBytesRead, NULL)) { // an error occured
+ if (!ReadFile (myFileHandle, cBuffer, NByte, &dwBytesRead, NULL)) { // an error occured
_osd_wnt_set_error ( myError, OSD_WFile );
Buffer.Clear ();
} else {
myIO &= ~FLAG_EOF ; // if the file increased since last read (LD)
- status = _get_line ( cBuffer, dwBytesRead );
+ NbyteRead = _get_line (cBuffer, dwBytesRead, aSeekPos);
- dwSeekPos = LODWORD( status );
- eos = ( Standard_CString )HIDWORD( status );
-#ifdef VAC
- if ( (__int64) status == (__int64) -1 ) { // last character in the buffer is <CR> -
-#else
- if ( status == 0xFFFFFFFFFFFFFFFF ) { // last character in the buffer is <CR> -
- // peek next character to see if it is a <LF>
-#endif
+ if ( NbyteRead == -1 ) // last character in the buffer is <CR> -
+ { // peek next character to see if it is a <LF>
if (!ReadFile (myFileHandle, ppeekChar, 1, &dwDummy, NULL)) {
_osd_wnt_set_error ( myError, OSD_WFile );
NbyteRead = dwBytesRead;
- } else {
-
- if ( dwSeekPos != 0 )
- SetFilePointer (myFileHandle, (LONG)dwSeekPos, NULL, FILE_CURRENT);
-
- NbyteRead = ( Standard_Integer )( eos - cBuffer );
-
+ } else if ( aSeekPos != 0 )
+ {
+ SetFilePointer (myFileHandle, aSeekPos, NULL, FILE_CURRENT);
}
} // end else
} else {
- status = _get_line ( cBuffer, dwBytesRead );
-
- dwSeekPos = LODWORD( status );
- eos = ( Standard_CString )HIDWORD( status );
-
-#ifdef VAC
- if ( (__int64) status == (__int64) -1 ) { // last character in the buffer is <CR> -
-#else
- if ( status == 0xFFFFFFFFFFFFFFFF ) { // last character in the buffer is <CR> -
- // peek next character to see if it is a <LF>
-#endif
+ NbyteRead = _get_line (cBuffer, dwBytesRead, aSeekPos);
+ if (NbyteRead == -1) // last character in the buffer is <CR> -
+ { // peek next character to see if it is a <LF>
NbyteRead = dwBytesRead; // (LD) always fits this case.
dwDummy = _get_buffer (myFileHandle, ppeekChar, 1, TRUE, myIO & FLAG_SOCKET);
myIO |= FLAG_EOF;
- } else {
-
- if ( dwSeekPos != 0 )
- dwBytesRead = dwBytesRead + dwSeekPos;
-
- NbyteRead = ( Standard_Integer )( eos - cBuffer );
-
+ } else if (aSeekPos != 0)
+ {
+ dwBytesRead = dwBytesRead + aSeekPos;
}
// Don't rewrite datas in cBuffer.
} // end _test_raise
-// Modified so that we have <nl> at end of line if we have read <nl> or <cr>
-// by LD 17 dec 98 for B4.4
-
-static DWORDLONG __fastcall _get_line ( Standard_PCharacter& buffer, DWORD dwBuffSize ) {
+// Returns number of bytes in the string (including end \n, but excluding \r);
+//
+static Standard_Integer __fastcall _get_line (Standard_PCharacter& buffer, DWORD dwBuffSize, LONG& theSeekPos)
+{
- DWORDLONG retVal;
Standard_PCharacter ptr;
buffer[ dwBuffSize ] = 0;
while ( *ptr != 0 ) {
- if ( *ptr == '\n' ) {
-
- ptr++ ; // jump newline char.
- *ptr = 0 ;
- retVal = ptr - buffer - dwBuffSize;
- retVal &= 0x0000000FFFFFFFF;// import 32-bit to 64-bit
-#ifdef VAC
- retVal = (DWORDLONG) ( (unsigned __int64) retVal | (((unsigned __int64) ptr) << 32) );
-#else
- retVal |= ( ( ( DWORDLONG )( DWORD )ptr ) << 32 );
-#endif
- return retVal;
-
- } else if ( *ptr == '\r' && ptr[ 1 ] == '\n' ) {
-
- *(ptr++) = '\n' ; // Substitue carriage return by newline.
- *ptr = 0 ;
- retVal = ptr + 1 - buffer - dwBuffSize;
- retVal &= 0x0000000FFFFFFFF;// import 32-bit to 64-bit
-#ifdef VAC
- retVal = (DWORDLONG) ( (unsigned __int64) retVal | (((unsigned __int64) ptr) << 32) );
-#else
- retVal |= ( ( ( DWORDLONG )( DWORD )ptr ) << 32 );
-#endif
- return retVal;
-
- } else if ( *ptr == '\r' && ptr[ 1 ] == 0 ) {
+ if ( *ptr == '\n' )
+ {
+ ptr++ ; // jump newline char.
+ *ptr = 0 ;
+ theSeekPos = (LONG)(ptr - buffer - dwBuffSize);
+ return (Standard_Integer)(ptr - buffer);
+ }
+ else if ( *ptr == '\r' && ptr[ 1 ] == '\n' )
+ {
+ *(ptr++) = '\n' ; // Substitue carriage return by newline.
+ *ptr = 0 ;
+ theSeekPos = (LONG)(ptr + 1 - buffer - dwBuffSize);
+ return (Standard_Integer)(ptr - buffer);
+ }
+ else if ( *ptr == '\r' && ptr[ 1 ] == 0 ) {
*ptr = '\n' ; // Substitue carriage return by newline
-
-#ifdef VAC
- return (DWORDLONG) (__int64) (-1);
-#else
- return 0xFFFFFFFFFFFFFFFF;
-#endif
+ return -1;
}
++ptr;
} // end while
-#ifdef VAC
- retVal = (DWORDLONG) ( ( (unsigned __int64) ((DWORD) buffer + dwBuffSize) ) << 32 );
- retVal = (DWORDLONG) ( (unsigned __int64) retVal & (((unsigned __int64) 0xFFFFFFFF) << 32) );
-#else
- retVal = ( ( ( DWORDLONG )( ( DWORD )buffer + dwBuffSize ) ) << 32 );
- retVal &= 0xFFFFFFFF00000000;
-#endif
-
- return retVal;
-
+ theSeekPos = 0;
+ return dwBuffSize;
} // end _get_line
static int __fastcall _get_buffer (
if (status == -1) myError.SetValue (errno, Iam, "SetProtection");
}
-
-
-// Returns User Id
-
-Standard_Integer OSD_FileNode::UserId(){
-struct stat buffer;
-
-// if (myPath.Name().Length()==0)
-// OSD_OSDError::Raise("OSD_FileNode::UserId : no name was given");
-
-// if (Failed()) Perror();
-
- /* Get File Informations */
-
- TCollection_AsciiString aBuffer;
- myPath.SystemName ( aBuffer );
- stat ( aBuffer.ToCString(), &buffer );
-
- return ( buffer.st_uid );
-}
-
-
-// Returns Group Id
-
-Standard_Integer OSD_FileNode::GroupId(){
-struct stat buffer;
-
-// if (myPath.Name().Length()==0)
-// OSD_OSDError::Raise("OSD_FileNode::GroupId : no name was given");
-
-// if (Failed()) Perror();
-
- /* Get File Informations */
-
- TCollection_AsciiString aBuffer;
- myPath.SystemName ( aBuffer );
- stat ( aBuffer.ToCString(), &buffer );
-
- return ( buffer.st_gid );
-}
-
-
-
-
// return the date of last access of file/directory
Quantity_Date OSD_FileNode::CreationMoment(){
} // end OSD_FileNode :: CreationMoment
-//=======================================================================
-//function : UserId
-//purpose :
-//=======================================================================
-
-Standard_Integer OSD_FileNode::UserId () {
-
- PSID pSIDowner = NULL;
- PSID retVal = NULL;
- BOOL fDefaulted;
- TCollection_AsciiString fName;
- PSECURITY_DESCRIPTOR pSD;
-
- myPath.SystemName ( fName );
- TCollection_ExtendedString fNameW(fName);
-
- TEST_RAISE( "UserId" );
-
- if ( ( pSD = GetFileSecurityEx (
- (const wchar_t*) fNameW.ToExtString (),
- OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION
- )
- ) != NULL &&
- GetSecurityDescriptorOwner ( pSD, &pSIDowner, &fDefaulted ) &&
- pSIDowner != NULL
- )
-
- retVal = CopySidEx ( pSIDowner );
-
- else
-
- _osd_wnt_set_error ( myError, OSD_WFileNode );
-
- if ( pSD != NULL )
-
- FreeFileSecurity ( pSD );
-
- return ( Standard_Integer )retVal;
-
-} // end OSD_FileNode :: UserId
-
-//=======================================================================
-//function : GroupId
-//purpose :
-//=======================================================================
-
-Standard_Integer OSD_FileNode::GroupId () {
-
- PGROUP_SID retVal = NULL;
- TCollection_AsciiString fName;
- PSECURITY_DESCRIPTOR pSD;
-
- myPath.SystemName ( fName );
- TCollection_ExtendedString fNameW(fName);
-
- TEST_RAISE( "GroupId" );
-
- if ( ( pSD = GetFileSecurityEx (
- (const wchar_t*) fNameW.ToExtString (),
- OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION
- )
- ) != NULL
- ) {
-
- retVal = AllocGroupSid ( pSD );
- FreeFileSecurity ( pSD );
-
- } else
-
- _osd_wnt_set_error ( myError, OSD_WFileNode );
-
- return ( Standard_Integer )retVal;
-
-} // end OSD_FileNode :: GroupId
-
//=======================================================================
//function : Failed
//purpose :
//! same value.
Standard_EXPORT Quantity_Date CreationMoment();
- //! Returns User Identification.
- Standard_EXPORT Standard_Integer UserId();
-
- //! Returns Group Identification.
- Standard_EXPORT Standard_Integer GroupId();
-
//! Returns TRUE if an error occurs
Standard_EXPORT Standard_Boolean Failed() const;
return (getpid());
}
-
-Standard_Integer OSD_Process::UserId(){
- return (getuid());
-}
-
-
TCollection_AsciiString OSD_Process::UserName(){
struct passwd *infos;
infos = getpwuid(getuid());
} // end OSD_Process :: SystemDate
-Standard_Integer OSD_Process :: UserId () {
-
- PSID retVal = NULL;
- HANDLE hProcessToken = INVALID_HANDLE_VALUE;
- PTOKEN_OWNER pTKowner = NULL;
-
- if ( !OpenProcessToken (
- GetCurrentProcess (),
- TOKEN_QUERY, &hProcessToken
- ) ||
- ( pTKowner = ( PTOKEN_OWNER )GetTokenInformationEx (
- hProcessToken, TokenOwner
- )
- ) == NULL ||
- ( retVal = CopySidEx ( pTKowner -> Owner ) ) == NULL
- )
-
- _osd_wnt_set_error ( myError, OSD_WProcess );
-
- if ( hProcessToken != INVALID_HANDLE_VALUE ) CloseHandle ( hProcessToken );
- if ( pTKowner != NULL ) FreeTokenInformation ( pTKowner );
-
- return ( Standard_Integer )retVal;
-
-} // end OSD_Process :: UserId
-
TCollection_AsciiString OSD_Process :: UserName ()
{
Standard_PCharacter pBuff = new char[UNLEN + 1];
//! Gets system date.
Standard_EXPORT Quantity_Date SystemDate();
- //! Returns the 'User Id'.
- Standard_EXPORT Standard_Integer UserId();
-
//! Returns the user name.
Standard_EXPORT TCollection_AsciiString UserName();
WNTthread_data *adata = (WNTthread_data*)data;
void* ret = adata->func ( adata->data );
free ( adata );
- return (DWORD)ret;
+ return PtrToLong (ret);
}
#endif
// and convert result of the thread execution to Standard_Address
DWORD anExitCode;
if ( GetExitCodeThread ( myThread, &anExitCode ) )
- result = (Standard_Address)anExitCode;
+ result = ULongToPtr (anExitCode);
return Standard_True;
#else
{
DWORD anExitCode;
if ( GetExitCodeThread ( myThread, &anExitCode ) )
- result = (Standard_Address)anExitCode;
+ result = ULongToPtr (anExitCode);
return Standard_True;
}
else if (ret == WAIT_TIMEOUT)
/***/
static void Init ( void );
/***/
-static DWORD dwLevel;
-/***/
class Init_OSD_WNT { // provides initialization
public:
- Init_OSD_WNT () { Init (); dwLevel = TlsAlloc (); }
+ Init_OSD_WNT () { Init (); }
}; // end Init_OSD_WNT
/* Returns : TRUE on success, FALSE otherwise */
/******************************************************************************/
/***/
-BOOL MoveDirectory ( LPCWSTR oldDir, LPCWSTR newDir ) {
+static BOOL MoveDirectory ( LPCWSTR oldDir, LPCWSTR newDir, DWORD& theRecurseLevel ) {
PWIN32_FIND_DATAW pFD;
LPWSTR pName;
BOOL fFind;
BOOL retVal = FALSE;
DIR_RESPONSE response;
- DWORD level;
- if ( ( level = ( DWORD )TlsGetValue ( dwLevel ) ) == NULL ) {
+ if (theRecurseLevel == 0) {
- ++level;
- TlsSetValue ( dwLevel, ( LPVOID )level );
+ ++theRecurseLevel;
fFind = FALSE;
driveSrc = driveDst = pathSrc = pathDst = NULL;
if ( fFind ) {
- --level;
- TlsSetValue ( dwLevel, ( LPVOID )level );
+ --theRecurseLevel;
return retVal;
} // end if
} else {
- ++level;
- TlsSetValue ( dwLevel, ( LPVOID )level );
+ ++theRecurseLevel;
} // end else
if ( pFD -> dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) {
- retVal = MoveDirectory ( pFullNameSrc, pFullNameDst );
+ retVal = MoveDirectory ( pFullNameSrc, pFullNameDst, theRecurseLevel );
if (!retVal) break;
} else {
} /* end if */
- --level;
- TlsSetValue ( dwLevel, ( LPVOID )level );
+ --theRecurseLevel;
return retVal;
} /* end MoveDirectory */
+
+BOOL MoveDirectory (LPCWSTR oldDir, LPCWSTR newDir)
+{
+ DWORD aRecurseLevel = 0;
+ return MoveDirectory (oldDir, newDir, aRecurseLevel);
+}
+
/***/
/******************************************************************************/
/* Function : CopyDirectory */
Handle(StepBasic_Person) aPerson = new StepBasic_Person;
Handle(TCollection_HAsciiString) uid = new TCollection_HAsciiString ( orgId );
uid->AssignCat ( "," );
- uid->AssignCat ( TCollection_AsciiString ( sys.UserId() ).ToCString() );
+ uid->AssignCat (sys.UserName().ToCString());
Handle(Interface_HArray1OfHAsciiString) suffix, prefix;
aPerson->Init ( uid, Standard_True, lname, Standard_True, fname, ( ! mname.IsNull() ),
mname, Standard_False, suffix, Standard_False, prefix );
TDF_LabelIntegerMap.hxx
TDF_LabelList.hxx
TDF_LabelMap.hxx
-TDF_LabelMapHasher.cxx
TDF_LabelMapHasher.hxx
-TDF_LabelMapHasher.lxx
TDF_LabelNode.cxx
TDF_LabelNode.hxx
TDF_LabelNodePtr.hxx
+++ /dev/null
-// Created by: DAUTRY Philippe
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-// ----------------------
-// Version: 0.0
-//Version Date Purpose
-// 0.0 Feb 13 1997 Creation
-
-#include <TDF_Label.hxx>
-#include <TDF_LabelMapHasher.hxx>
#ifndef _TDF_LabelMapHasher_HeaderFile
#define _TDF_LabelMapHasher_HeaderFile
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-class TDF_Label;
-
+#include <TDF_Label.hxx>
//! A label hasher for label maps.
class TDF_LabelMapHasher
{
public:
- DEFINE_STANDARD_ALLOC
+ //! Returns a HasCode value for the Key <K> in the range 0..Upper.
+ static Standard_Integer HashCode(const TDF_Label& aLab, const Standard_Integer Upper)
+ {
+ return ::HashCode((Standard_Address)aLab.myLabelNode, Upper);
+ }
-
- //! Returns a HasCode value for the Key <K> in the
- //! range 0..Upper.
- static Standard_Integer HashCode (const TDF_Label& aLab, const Standard_Integer Upper);
-
//! Returns True when the two keys are the same. Two
//! same keys must have the same hashcode, the
//! contrary is not necessary.
- static Standard_Boolean IsEqual (const TDF_Label& aLab1, const TDF_Label& aLab2);
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-
-
-
-
+ static Standard_Boolean IsEqual(const TDF_Label& aLab1, const TDF_Label& aLab2)
+ {
+ return aLab1.IsEqual(aLab2);
+ }
};
-
-#include <TDF_LabelMapHasher.lxx>
-
-
-
-
-
#endif // _TDF_LabelMapHasher_HeaderFile
+++ /dev/null
-// Created by: DAUTRY Philippe
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-// ----------------------
-
-// Version: 0.0
-//Version Date Purpose
-// 0.0 Feb 13 1997 Creation
-
-
-//=======================================================================
-//function : HashCode
-//purpose :
-//=======================================================================
-
-inline Standard_Integer TDF_LabelMapHasher::HashCode
-(const TDF_Label& aLab, const Standard_Integer Upper)
-{ return 1 + ( (int) (labs((long int) aLab.myLabelNode) % Upper) ); }
-
-
-//=======================================================================
-//function : IsEqual
-//purpose :
-//=======================================================================
-
-inline Standard_Boolean TDF_LabelMapHasher::IsEqual
-(const TDF_Label& aLab1,const TDF_Label& aLab2)
-{ return aLab1.IsEqual(aLab2); }