QString PlatformSettings::temporaryVideoPath() { if (m_temp.isEmpty()) { m_temp = canonicalPath(TEMP_VIDEO); } return m_temp; }
static bool makeAllDirectories(IFileMgr* fileManager, const String& path) { if (path == canonicalPath(AEEFS_HOME_DIR)) return true; int lastDivPos = path.reverseFind('/'); int endPos = path.length(); if (lastDivPos == path.length() - 1) { endPos -= 1; lastDivPos = path.reverseFind('/', lastDivPos); } if (lastDivPos > 0) { if (!makeAllDirectories(fileManager, path.substring(0, lastDivPos))) return false; } String folder(path.substring(0, endPos)); // IFILEMGR_MkDir return SUCCESS when the file is successfully created or if file already exists. // So we need to check fileinfo.attrib. IFILEMGR_MkDir(fileManager, folder.utf8().data()); FileInfo fileInfo; if (IFILEMGR_GetInfo(fileManager, folder.utf8().data(), &fileInfo) != SUCCESS) return false; return fileInfo.attrib & _FA_DIR; }
QString PlatformSettings::imagePath() { if (m_image.isEmpty()) { m_image = canonicalPath(IMAGE_PATH); } return m_image; }
QString PlatformSettings::videoPath() { if (m_video.isEmpty()) { m_video = canonicalPath(VIDEO_PATH); } return m_video; }
string Util::canonicalDir(string path) { string dir = canonicalPath(path); unsigned int pos = 0; pos = dir.find_last_of('/'); if (pos != string::npos) { dir = dir.substr(0, pos); } return dir; }
/** * @brief Create an AWS V4 Signature canonical request. * * @param[in] operation The HTTP method being used for the request. * @param[in] request The network request to generate a canonical request for. * @param[in] payload Optional data being submitted in the request (eg for `PUT` and `POST` operations). * @param[out] signedHeaders A semi-colon separated list of the names of all headers * included in the result. * * @return An AWS V4 Signature canonical request. * * @see http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html */ QByteArray AwsSignatureV4Private::canonicalRequest(const QNetworkAccessManager::Operation operation, const QNetworkRequest &request, const QByteArray &payload, QByteArray * const signedHeaders) const { return httpMethod(operation).toUtf8() + '\n' + canonicalPath(request.url()).toUtf8() + '\n' + canonicalQuery(QUrlQuery(request.url())) + '\n' + canonicalHeaders(request, signedHeaders) + '\n' + *signedHeaders + '\n' + QCryptographicHash::hash(payload, hashAlgorithm).toHex(); }
StorageCatBoostPool::StorageCatBoostPool(const Context & context, String column_description_file_name_, String data_description_file_name_) : column_description_file_name(std::move(column_description_file_name_)), data_description_file_name(std::move(data_description_file_name_)) { auto base_path = canonicalPath(context.getPath()); column_description_file_name = resolvePath(base_path, std::move(column_description_file_name)); data_description_file_name = resolvePath(base_path, std::move(data_description_file_name)); if (context.getApplicationType() == Context::ApplicationType::SERVER) { const auto & base_path_str = base_path.string(); checkCreationIsAllowed(base_path_str, column_description_file_name); checkCreationIsAllowed(base_path_str, data_description_file_name); } parseColumnDescription(); createSampleBlockAndColumns(); }
void PlaylistModel::openFilesAndDirs0(QVector<ImageFile*> &openfiles, const QStringList &paths, int level) { if (paths.empty()) return; for (auto iter = paths.cbegin(); iter != paths.cend(); ++iter) { const QFileInfo info(*iter); if (info.isFile()) { if (ImageFile::isReadableImageFile(*iter)) { ImageFile *imgfile = new ImageFile(*iter); openfiles.append(imgfile); } else { QVector<ImageFile*> imgfiles = ImageFile::openArchive(*iter); openfiles.append(imgfiles); imgfiles.clear(); } } else if (level > 0) { QStringList newlist; const QFileInfoList entrylist = QDir(*iter).entryInfoList(); const int clen = info.canonicalPath().length(); for (auto iter2 = entrylist.cbegin(); iter2 != entrylist.cend(); ++iter2) { if (clen < iter2->canonicalPath().length()) { newlist << iter2->filePath(); } } openFilesAndDirs0(openfiles, newlist, level-1); } } }
std::string FileSystem::getFileDirectory(const std::string &filePath) { auto fullPath = canonicalPath(filePath); if (fullPath.empty()) return ""; std::string::iterator lastSlashPos = fullPath.end(); for (auto it = fullPath.rbegin(); it != fullPath.rend(); it++) { if (*it == '/' || *it == '\\') { lastSlashPos = it.base(); break; } } if (lastSlashPos == fullPath.end()) return ""; return std::string(fullPath.begin(), lastSlashPos); }
std::string FileSystem::fullPath(const std::string &path) const { std::lock_guard<std::recursive_mutex> lock(m_lock); auto foundInCache = m_fullPathsCache.find(path); if (foundInCache != m_fullPathsCache.end()) return foundInCache->second; for (const auto &sp : m_searchPaths) { auto newpath = pathConcatenate(sp, path); auto fullp = canonicalPath(newpath); if (!fullp.empty()) { m_fullPathsCache[path] = fullp; return fullp; } } return ""; }
/** * @brief Create an AWS V3 Signature canonical request. * * Note, this function implments both `AWS3` and `AWS3-HTTPS` variants of the * AWS Signature version 3 - which are quite different. * * @param[in] operation The HTTP method being used for the request. * @param[in] request The network request to generate a canonical request for. * @param[in] payload Optional data being submitted in the request (eg for `PUT` and `POST` operations). * @param[out] signedHeaders A semi-colon separated list of the names of all headers * included in the result. * * @return An AWS V3 Signature canonical request. * * @see http://docs.aws.amazon.com/amazonswf/latest/developerguide/HMACAuth-swf.html (AWS3) * @see http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RESTAuthentication.html (AWS3-HTTPS) */ QByteArray AwsSignatureV3Private::canonicalRequest(const QNetworkAccessManager::Operation operation, const QNetworkRequest &request, const QByteArray &payload, QByteArray * const signedHeaders) const { // AWS3-HTTPS if (isHttps(request)) { Q_ASSERT((request.hasRawHeader("x-amz-date")) || (request.hasRawHeader("Date"))); QByteArray canonicalRequest = request.rawHeader(request.hasRawHeader("x-amz-date") ? "x-amz-date" : "Date"); if (request.hasRawHeader("x-amz-nonce")) { canonicalRequest += request.rawHeader("x-amz-nonce"); } return canonicalRequest; } // AWS3 return httpMethod(operation).toUtf8() + '\n' + canonicalPath(request.url()).toUtf8() + '\n' + canonicalQuery(QUrlQuery(request.url())) + '\n' + canonicalHeaders(request, signedHeaders) + '\n' + payload; }
/* ipfc 1.0 flags are: /INF -- generate an *.inf file /S ---- suppress search table generation /X ---- generate cross-reference list /Wn --- warning level n /COUNTRY=nnn /CODEPAGE=nnn /LANGUAGE=XYZse ipfc 2.0 flags are: -i ------- generate an *.inf file -s ------- suppress search table generation -x ------- generate cross-reference list -Wn ------ set warning level -d:nnn --- set 3 digit country code -c:nnnn -- set 4 digit code page -l:xyz -- set 3 letter language identifier -X:? ----- help on option '?' We support the version 2 flags */ static void processCommandLine(int argc, char **argv, Compiler& c) { if (argc < 2) usage(); int inIndex( 0 ); int outIndex( 0 ); bool info( false ); for( int count = 1; count < argc; ++count ) { #ifdef __UNIX__ if( argv[count][0] == '-' ) { #else if( argv[count][0] == '-' || argv[count][0] == '/' ) { #endif switch( argv[count][1] ) { case 'C': case 'c': case 'd': std::cout << "Country code and code page selection are not supported." << std::endl; std::cout << "Use the 'l' option to select a localization file instead." << std::endl; if (argv[count][2] == '?') info = true; break; case 'I': case 'i': c.setOutputType( Compiler::INF ); break; case 'L': case 'l': if (argv[count][2] == '?') { std::cout << "xx_YY is the root name of a localization file" << std::endl; std::cout << "with the full name xx_YY.nls\nSee en_US.nls for an example." << std::endl; info = true; } else c.setLocalization( argv[++count] ); break; case 'O': case 'o': outIndex = ++count; break; case 'Q': case 'q': c.noBanner(); break; case 'S': case 's': c.noSearch(); break; case 'w': case 'W': if (argv[count][2] == '?') { std::cout << "-wN where N is one of 1, 2, or 3" << std::endl; info = true; } else c.setWarningLevel( std::atoi( argv[count] + 2 )); break; case 'X': case 'x': c.setXRef( true ); break; default: usage(); break; } } else if( !inIndex ) inIndex = count; else std::cout << "Warning: extra filename '" << argv[count] << "' will be ignored" << std::endl; } if( inIndex ) { std::string fullpath( canonicalPath( argv[ inIndex ] ) ); c.setInputFile( fullpath ); if( !outIndex ) { std::string outFile( fullpath ); outFile.erase( outFile.rfind( '.' ) ); if( c.outputType() == Compiler::INF ) outFile += ".inf"; else outFile += ".hlp"; c.setOutputFile( outFile ); } } else { std::cout << "Fatal Error: You must specify an input file" << std::endl; std::exit( EXIT_FAILURE ); } if( outIndex ) { std::string fullpath( canonicalPath( argv[ outIndex ] ) ); c.setOutputFile( fullpath ); } if( info ) std::exit( EXIT_SUCCESS ); } /*****************************************************************************/ static void usage() { printBanner(); std::cout << "Usage:" << std::endl; std::cout << "wipfc [-switches] [-options] infile [outfile]" << std::endl; std::cout << std::endl; std::cout << "Switches" << std::endl; std::cout << "-i generate outfile.inf instead of outfile.hlp" << std::endl; std::cout << "-s do not generate full text search tables" << std::endl; std::cout << "-x generate and display cross-reference list" << std::endl; std::cout << std::endl; std::cout << "Options\n" << std::endl; std::cout << "-l xx_YY localization code (default: en_US)" << std::endl; std::cout << "-o name set the output file path, name and extension" << std::endl; std::cout << "-q operate quietly" << std::endl; std::cout << "-wn 1 digit warning level (default: 3)" << std::endl; std::cout << "-X? display help on option X" << std::endl; std::exit( EXIT_FAILURE ); }
bool makeAllDirectories(const String& path) { PlatformRefPtr<IFileMgr> fileMgr = createRefPtrInstance<IFileMgr>(AEECLSID_FILEMGR); return makeAllDirectories(fileMgr.get(), canonicalPath(path)); }