int l3Open( rsComm_t *rsComm, int l1descInx ) { dataObjInfo_t *dataObjInfo; int l3descInx; int mode, flags; dataObjInfo = L1desc[l1descInx].dataObjInfo; std::string location; irods::error ret = irods::get_loc_for_hier_string( dataObjInfo->rescHier, location ); if ( !ret.ok() ) { irods::log( PASSMSG( "l3Open - failed in get_loc_for_hier_string", ret ) ); return -1; } if ( getStructFileType( dataObjInfo->specColl ) >= 0 ) { subFile_t subFile; memset( &subFile, 0, sizeof( subFile ) ); rstrcpy( subFile.subFilePath, dataObjInfo->subPath, MAX_NAME_LEN ); rstrcpy( subFile.addr.hostAddr, location.c_str(), NAME_LEN ); subFile.specColl = dataObjInfo->specColl; subFile.mode = getFileMode( L1desc[l1descInx].dataObjInp ); subFile.flags = getFileFlags( l1descInx ); l3descInx = rsSubStructFileOpen( rsComm, &subFile ); } else { mode = getFileMode( L1desc[l1descInx].dataObjInp ); flags = getFileFlags( l1descInx ); l3descInx = _l3Open( rsComm, dataObjInfo, mode, flags ); } return l3descInx; }
bool QFileInfoPrivate::hasAccess(Access access) const { if (!(getFileFlags(QAbstractFileEngine::FileInfoAll) & QAbstractFileEngine::LocalDiskFlag)) { switch (access) { case ReadAccess: return getFileFlags(QAbstractFileEngine::ReadUserPerm); case WriteAccess: return getFileFlags(QAbstractFileEngine::WriteUserPerm); case ExecuteAccess: return getFileFlags(QAbstractFileEngine::ExeUserPerm); default: return false; } } int mode = 0; switch (access) { case ReadAccess: mode = R_OK; break; case WriteAccess: mode = W_OK; break; case ExecuteAccess: mode = X_OK; break; }; #ifdef Q_OS_UNIX return QT_ACCESS(QFile::encodeName(data->fileName).data(), mode) == 0; #endif #ifdef Q_OS_WIN if ((access == ReadAccess && !getFileFlags(QAbstractFileEngine::ReadUserPerm)) || (access == WriteAccess && !getFileFlags(QAbstractFileEngine::WriteUserPerm))) { return false; } if (access == ExecuteAccess) return getFileFlags(QAbstractFileEngine::ExeUserPerm); QT_WA( { return ::_waccess((TCHAR *)QFSFileEnginePrivate::longFileName(data->fileName).utf16(), mode) == 0; } , { return QT_ACCESS(QFSFileEnginePrivate::win95Name(data->fileName), mode) == 0;
bool isDir(int inode) { return getFileFlags(inode) & kFlagIsDir; }